C语言WIN32程序LISTVIEW获取程序PID的问题

object 对象表达式其值是“应用于”列表中的一个对象。 

注意在上面例子中在过程完成之后,属性被设置为 Nothing为了释放突出显示作用,必须这样做



再说一遍需求:写一个程序A去啟动一个指定的程序B,设置它的窗口大小并把它放到指定位置

既然CreateProcess指定的程序启动参数,对于GUI程序无效(我暂时真的不知道为什么…)那鈳以让程序启动以后,获取它的Handle然后模拟操作系统向它发送消息,让其响应

CreateProcess可以得到被启动的程序的PID,但得不到handle(我也不知道怎么回倳,明明说返回的是个handle但确实和B的handle不是一个数,另外尝试了各种办法比如openProcess返回的也不是B的handle的数)

那么,如果根据PID找到它对应的handle呢

有可能有死循环…,就是可能一直都找不到

如果开启的不是gui程序,只是开个控制台也找不到!启动以后,CreateProcess立即返回了wait那个函数没有生效!就算是Sleep以后,也找不到……

vc++6.0编译xp系统和win8系统,测试通过

方法二,调用EnumWindows函数枚举窗口。

如果启动的不是GUIwaitForInputldle没有用。需要手动指定一個Sleep的时间或者就用B向A发消息通知一下。或者B启动完毕后在哪个地方标记一下内存也好硬盘也好,然后A去轮询这个位置

废话不多说了,上代码

NULL,//不在此指定可执行文件的文件名

NULL,//默认进程的安全性

NULL,//默认线程的安全性

FALSE,//指定当前进程内的句柄不可以被子进程继承

NULL,//使用本进程的環境变量

NULL,//使用本进程的驱动器和目录

我要回帖

 

随机推荐