📄 subject_36486.htm
字号:
<p>
序号:36486 发表者:lorence 发表日期:2003-04-15 22:14:59
<br>主题:EnumProcesses怎么用啊?
<br>内容:我想获得系统的所有线程.但EnumProcesses怎么调用啊,为什么VC总是不忍呢?有没有别的方法啊,各位大虾帮帮忙吧!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:neilgan 回复日期:2003-04-16 02:24:17
<br>内容:If you are using Windows 9x, you should use toolhelp api, because it 9x doesn't support psapi.<BR><BR>Following is a example that return the process Id of PowerPoint process.<BR><BR>DWORD FindPowerPointProcess()<BR>{<BR> DWORD adwProcessIdList[1000];<BR> DWORD dwBufUsed;<BR> HMODULE hPsApiDll=NULL;<BR> BOOL (__stdcall *pfnEnumProcesses)(DWORD*,DWORD,DWORD*) = NULL;<BR> DWORD (__stdcall *pfnGetModuleFileNameEx)(HANDLE,HMODULE,LPTSTR,DWORD) = NULL;<BR> DWORD dwRetVal=(DWORD)-1;<BR><BR> __try<BR> {<BR> hPsApiDll=LoadLibrary("psapi.dll");<BR> if (NULL == hPsApiDll)<BR> __leave;<BR><BR> pfnEnumProcesses = (BOOL (__stdcall*)(DWORD*,DWORD,DWORD*))GetProcAddress(hPsApiDll,"EnumProcesses");<BR> if (NULL == pfnEnumProcesses)<BR> __leave;<BR><BR> pfnGetModuleFileNameEx=(DWORD(__stdcall*)(HANDLE,HMODULE,LPTSTR,DWORD))GetProcAddress(hPsApiDll,"GetModuleFileNameExA");<BR> if (NULL == pfnGetModuleFileNameEx)<BR> __leave;<BR><BR> if (!pfnEnumProcesses(adwProcessIdList,sizeof(adwProcessIdList),&dwBufUsed))<BR> __leave;<BR><BR> int nProcessNum=dwBufUsed/sizeof(DWORD);<BR> HANDLE hProcess;<BR> char acFileName[MAX_PATH+1];<BR><BR> for (int i=0 ; i<nProcessNum ; i++)<BR> {<BR> hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ , FALSE, adwProcessIdList[i]);<BR> if (hProcess)<BR> {<BR> if (pfnGetModuleFileNameEx(hProcess,NULL,acFileName,sizeof(acFileName)))<BR> {<BR> if (!stricmp(strrchr(acFileName,'\\')+1,"powerpnt.exe"))<BR> {<BR> dwRetVal=adwProcessIdList[i];<BR> CloseHandle(hProcess);<BR> __leave;<BR> }<BR> }<BR> CloseHandle(hProcess);<BR> }<BR> }<BR> }<BR> __finally<BR> {<BR> if (hPsApiDll)<BR> FreeLibrary(hPsApiDll);<BR><BR> }<BR> return dwRetVal;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lorence 回复日期:2003-04-16 11:33:44
<br>内容:谢谢,大虾能不能告诉我怎样得到系统当前的所有窗口的ID,系统是2000.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:西北狼 回复日期:2003-04-16 11:59:37
<br>内容:我也想知道,还有就是获得窗口句柄的函数的用法,枚举窗口句柄的用法,哪位大虾能写点示范代码?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -