首先创建进程:

STARTUPINFO si;
PROCESS_INFORMATION pi;

if( !CreateProcess( NULL, // No module name (use command line).
        "11111//111.exe", // Command line.
        NULL,             // Process handle not inheritable.
        NULL,             // Thread handle not inheritable.
        FALSE,            // Set handle inheritance to FALSE.
        0,                // No creation flags.
        NULL,             // Use parent's environment block.
        NULL,             // Use parent's starting directory.
        &si,              // Pointer to STARTUPINFO structure.
        &pi)             // Pointer to PROCESS_INFORMATION structure.
  )
    {
        AfxMessageBox( "程序被迫终止!." );
  exit(1);
    }

然后用以下方法获得窗口句柄:

GUITHREADINFO gui;
 gui.cbSize = sizeof(gui);
 GetGUIThreadInfo(pi.dwThreadId,&gui);

在GUITHREADINFO 结构体中包括的句柄的信息。

在这里有一点需要注意,在MSDN中说GUITHREADINFO 结构体在windows.h和winuser.h中定义,但是在VC6编译的时候还是提示没有定义,这时把winable.h包含进去才可以通过编译。

通过线程ID获得窗口句柄的方法相关推荐

  1. boost::thread编程实战(2)——获取线程id并转化为DWORD类型

    1. boost::thread::id 的基础知识 ① boost::thread::id 的对象能够用来标识线程,每个正在运行的线程都可以获取一个唯一可用的线程id,可以通过调用 boost::t ...

  2. 在linux上获得线程id的方法

    From: http://www.linuxidc.com/Linux/2014-01/94723.htm 我使用了第二种方法,很方便: #define gettid() syscall(__NR_g ...

  3. Java 线程实例一(查看线程是否存活、获取当前线程名称、状态监测、线程优先级设置、死锁及解决方法、获取线程id、线程挂起)

    查看线程是否存活 以下实例演示了如何通过继承 Thread 类并使用 isAlive() 方法来检测一个线程是否存活: public class TwoThreadAlive extends Thre ...

  4. C# API之常用操作窗口类函数详解[查找所有窗口、获取目标句柄的类名、获取窗口文本、获取当前活动窗口、通过窗口句柄获取线程ID、获取指定窗口位置]

    /// <summary>/// 查找所有窗口(只要是在进程里面的)/// 如果不限制类名或者标题使用null代替/// </summary>/// <param nam ...

  5. linux c 获取 进程 线程 id

    有些时候,需要在Log中打出进程或线程的ID,以便调试.查找问题. 获取进程ID #include <unistd.h> pid_t getpid(void); 获取线程ID // 方法1 ...

  6. Java经典面试题:一个线程两次调用start()方法会出现什么情况?

    大家好,我是 Oracle首席工程师杨晓峰. 今天想和大家深入聊聊线程,相信大家对于线程这个概念都不陌生,它是Java并发的基础元素,理解.操纵.诊断线程是Java工程师的必修课,但是你真的掌握线程了 ...

  7. GetWindowThreadProcessId 获得窗口所在进程ID和线程ID

    GetWindowThreadProcessId 获得窗口所在进程ID和线程 在得到窗口句柄后我们可以通过GetWindowThreadProcessId这个函数来获得窗口所属进程ID和线程ID,从而 ...

  8. Linux下获得线程ID syscall(224)

    From: http://blog.163.com/onx0320@126/blog/static/164736436201252574720314/ 对于Linux线程,也许大家并不陌生,而我们通常 ...

  9. 另一种将线程并入应用程序的方法-委托

    委托的同步 声明一个委托: public delegate int BinaryOp(int x, int y); BinaryOp编译后,其所属程序集将包含一个根据委托声明动态生成的类的定义,将会生 ...

最新文章

  1. 面向可解释的NLP:北大、哈工大等提出文本分类的生成性解释框架
  2. 每日一皮:CPU的新用途,要不要试试?
  3. oracle查询某个用户下的所有视图
  4. c语言微秒级延迟程序,C语言中生产随机数及计算运行时间(微秒级)
  5. 华为Mate系列新机海外亮相 或将于MWC2019发布
  6. java实现对象转换为map、xml字符串转化为map、map转化为xml字符串
  7. Android Studio connot resolve symbol XXX 无法解析的符号
  8. 打开服务的方法,cmd上直接输入:services.msc
  9. vmware安装macos
  10. C语言基础级——标准输入和输出
  11. java解析json天气api,使用Postman获取天气接口API(Json格式)
  12. SUSE(Linux操作系统)
  13. 步进电机主要技术参数
  14. python爬取天极网手机信息代码
  15. 办公室桌面计算机,我的办公室桌面(一切为了简洁)
  16. OSPF 之 LSA限制
  17. Python用pyexiv2读写图片元数据(EXIF、IPTC、XMP)
  18. C#实现全盘扫描,找到符合要求的文件,并把路径写入到TXT中
  19. TOPSIS法(理想解法)
  20. go微服务框架go-micro

热门文章

  1. (七)JMockit 的MockUp+@Mock--基础篇
  2. 如何解决cmd找不到路径问题
  3. include_path='/usr/local/php7.0/lib/php (宝塔一键安装)报错解决方法
  4. C++ conversion operator
  5. 系分 - 案例分析 - 系统维护与设计模式
  6. 革文:B2B企业如何用品牌思维玩转社群营销
  7. SSL证书为什么会有有效期 如何有效避免SSL证书过期
  8. poj1330,JDOJ3055O(nlogn)做法
  9. 2022icpc昆明
  10. python123怎么注销账号_怎么注销账号