請教有關 VirtualQueryEx() 的用法 |
尚未結案
|
jazchen
一般會員 ![]() ![]() 發表:1 回覆:2 積分:0 註冊:2004-02-18 發送簡訊給我 |
http://delphi.ktop.com.tw/topic.php?topic_id=25705 我再上面的文章看到取得記憶體的方式!
因為我希望在 Win98 下也可以使用
所以我採用 VirtualQueryEx 來取得~ 以下是我的程式碼
HANDLE toolhelp; PROCESSENTRY32 pe; memset(&pe, 0x00, sizeof(PROCESSENTRY32)); pe.dwSize = sizeof(PROCESSENTRY32); toolhelp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); MEMORY_BASIC_INFORMATION * mbi; if (Process32First(toolhelp,&pe)) { do { memset(&mbi, 0x00, sizeof(mbi)); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID); VirtualQueryEx(hProcess, 0, mbi, sizeof(mbi)); addListItem(pe.th32ProcessID, pe.szExeFile, AnsiString(mbi->RegionSize)); } while (Process32Next(toolhelp,&pe)); } CloseHandle(toolhelp); ----------------------- void addListItem(DWORD pid, AnsiString exename, AnsiString size) { TListItem *ListItem; ListItem = Form1->ListView1->Items->Add(); ListItem->Caption = pid; ListItem->SubItems->Add(exename); ListItem->SubItems->Add(size); }但是跑起來有錯誤~ 我看了VirtualQueryEx 和 MEMORY_BASIC_INFORMATION 的相關 MSDN 文件 但是我搞不懂問題在哪~ 初學 BCB 6 半天的菜鳥求救!! |
m8815010
版主 ![]() ![]() ![]() ![]() ![]() 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: etc…etc…jazchen 你好: 我不知道你實際的需求,以及你撰寫的程式碼是否走向正確 |
jazchen
一般會員 ![]() ![]() 發表:1 回覆:2 積分:0 註冊:2004-02-18 發送簡訊給我 |
COOL~~ 剛剛我好我弄出一個結果跟您的有的像的!
HANDLE toolhelp; PROCESSENTRY32 pe; memset(&pe, 0x00, sizeof(PROCESSENTRY32)); pe.dwSize = sizeof(PROCESSENTRY32); toolhelp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); LPCVOID lpAddress; MEMORY_BASIC_INFORMATION mbi; if (Process32First(toolhelp,&pe)) { do { memset(&mbi, 0x00, sizeof(mbi)); memset(&lpAddress, 0x00, sizeof(LPCVOID)); HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pe.th32ProcessID); VirtualQueryEx(hProcess, lpAddress, &mbi, sizeof(mbi)); addListItem(pe.th32ProcessID, pe.szExeFile, AnsiString(mbi.RegionSize) ); } while (Process32Next(toolhelp,&pe)); } CloseHandle(toolhelp);出來的結果跟您的大致相同!! mbi.RegionSize 絕大部分都是 65536 我是想要寫一個類似 WINXP 的工作管理員的功能 可以列出系統中執行的 Process 和其記憶體用量 我有用 psapi 的 library 寫出來~ 但是在 win 98 中並不能使用~ 這點我再 msdn 已經知道嚕! 所以我想利用其他 98 support 的 api 來寫類似的功能 只是目前我還不知道我的方向有沒有錯誤! ^^" |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |