1. 程式人生 > >Windows API一日一練 88 EnumProcesses函數

Windows API一日一練 88 EnumProcesses函數

調用函數 log 生成報表 font failed ast clas nsh tps

當你開發的軟件在用戶那裏運行出錯了,想怎麽辦呢?當然是希望把出錯時候的運行環境信息生成報表,然後再Email回來查看了。這裏就介紹一個函數可以把當時運行環境的進程全部找到,然後可以輸出每個進程的信息。當然,這個函數也可以使用到殺病毒軟件裏,用來查看可疑的進程信息。 函數EnumProcesses聲明如下: BOOL WINAPI EnumProcesses ( DWORD * lpidProcess, DWORD cb, DWORD * cbNeeded ); lpidProcess是保存進程ID的數組。 cb是進程組數的大小。 cbNeeded
是返回進程數組的大小。 調用函數的例子如下: #001 //獲取系統所有進程。 #002 //蔡軍生 2007/12/12 QQ:9073204 深圳 #003 void TestEnumProcesses(void) #004 { #005 // #006 const int nBufSize = 512; #007 TCHAR chBuf[nBufSize]; #008 ZeroMemory(chBuf,nBufSize); #009 #010 // #011 DWORD dwProcs[1024*2]; #012 DWORD dwNeeded;
#013 #014 //枚舉所有進程ID #015 if ( !EnumProcesses( dwProcs, sizeof(dwProcs), &dwNeeded ) ) #016 { #017 //輸出出錯信息。 #018 wsprintf(chBuf,_T("EnumProcesses failed (%d)./n"), GetLastError() ); #019 OutputDebugString(chBuf); #020 #021 return;
#022 } #023 #024 // 計算有多少個進程ID #025 DWORD dwProcCount = dwNeeded / sizeof(DWORD); #026 #027 wsprintf(chBuf,_T("EnumProcesses Count(%d)./n"), dwProcCount ); #028 OutputDebugString(chBuf); #029 #030 } #031

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

Windows API一日一練 88 EnumProcesses函數