HWND、HINSTANCE、PROCESSID、th32ProcessID、th32ModuleID是怎样的关系
编号:QA004353
建立日期: 2001年8月12日 最后修改日期:2001年8月12日
所属类别:
liwb:
请教__HWND、HINSTANCE、PROCESSID、th32ProcessID、th32ModuleID
HWND、HINSTANCE、PROCESSID、th32ProcessID、th32ModuleID这些指针在同一个程序中是怎样的关系?
已知另一个程序的th32ProcessID,如何获得其他指针?如何用PostMessage函数将其关闭?我写了一个程序想获得系统内的进程,知道在WIN98及2000下用PSAPI比较好,但那有PSAPI.H和PSAPI.LIB;在NT4下如何完成这项功能呢?
回答:
th32processid是PROCESSENTRY32结构的一个成员,实际就是PROCESSID。
th32ModuleID是Toolhelp函数的一个指针,它不能在Win32 API中使用。
这几个成员中没有必然的联系,例如对于控制台程序,它没有主窗口,你也就无法通过PROCESSID得到HWND,再使用PostMessage。要想强行关闭程序,参考QA000718 "如何列出系统正在进行的程序及强行关闭该程序"。
PSAPI.DLL可以在NT4下使用。PSAPI.H和PSAPI.LIB在VC中没有包括,你可以在Platform SDK(http://www.microsoft.com/msdn/sdk)中找到。Platform SDK即原来的Windows SDK,尽管一般开发Windows程序,只要有VC就可以了。但是Platform SDK包括最新的Windows API(如Windows 2000的新函数)的有关声明、例子,值得下载。如果你嫌这个软件太大,也可以访问微软的Knowledge Base的文章:“Q231294 AMPLE: SmartGC Uses an ATL Server to Trigger Java GC”中也包括这两个文件。
此问题由李海回答。
| |
|
|
| |
|
|