請問:我想要偵測我的程式是否有執行 |
尚未結案
|
HM
初階會員 發表:21 回覆:32 積分:25 註冊:2004-11-17 發送簡訊給我 |
請問各位大大:
我用Winexec()去執行另一隻程式,並且會帶參數進去…
我想要知道我的程式是否有正常執行,才能繼續接下來的動作…
我試的方法是
function GetPIDByProgramName(const APName: string): Boolean;
var
isFound: boolean;
AHandle, AhProcess: THandle;
ProcessEntry32: TProcessEntry32;
APath: array[0..MAX_PATH] of char;
begin
AHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
try
ProcessEntry32.dwSize := Sizeof(ProcessEntry32);
isFound := Process32First(AHandle, ProcessEntry32); while isFound do
begin
AhProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
false, ProcessEntry32.th32ProcessID);
GetModuleFileNameEx(AhProcess, 0, @APath[0], sizeof(APath)); if (UpperCase(StrPas(APath)) = UpperCase(APName)) or
(UpperCase(StrPas(ProcessEntry32.szExeFile)) = UpperCase(APName)) then
begin
Result :=True;
break;
end;
isFound := Process32Next(AHandle, ProcessEntry32);
end;
finally
closeHandle(AHandle);
end; 目前我遇到的問題是,明明程式有在跑,可是卻一直偵測不到…
不知道各位大大有沒有更好的方式…THS
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Do not use WinExec nor ShellExecute. Try to search for ShellExecuteEx or CreateProcess. http://pywong.hk.st http://www.lazybones.ca
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |