我想從我的delphi應用程序運行一個程序(exe)。我可以這樣做,但是我想在運行之前檢查程序是否已經運行。有沒有辦法做到這一點..在此先感謝。我們如何確定一個程序已經在delphi中運行了
-2
A
回答
2
以下函數檢查進程是否正在運行。將「TlHelp32」添加到uses子句中。
function ProcessRunning (sExeName: String) : Boolean;
{ -> sExeName : Name of the EXE without path. Does not have to be the full EXE name. }
var
hSnapShot : THandle;
ProcessEntry32 : TProcessEntry32;
begin
Result := false;
hSnapShot := CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0);
Win32Check (hSnapShot <> INVALID_HANDLE_VALUE);
sExeName := LowerCase (sExeName);
FillChar (ProcessEntry32, SizeOf (TProcessEntry32), #0);
ProcessEntry32.dwSize := SizeOf (TProcessEntry32);
if (Process32First (hSnapShot, ProcessEntry32)) then
repeat
if (Pos (sExeName,
LowerCase (ProcessEntry32.szExeFile)) = 1) then
begin
Result := true;
Break;
end; { if }
until (Process32Next (hSnapShot, ProcessEntry32) = false);
CloseHandle (hSnapShot);
end; { ProcessRunning }
+0
這就是我想要的。謝謝。 – Anushal
+1
這可能看起來像你想要的,但我懷疑它。使用此功能,您仍然可以根據時間多次啓動您的流程。你真正需要的是一個使用互斥體的解決方案。這就是說,這仍然是一個方便的功能。 –
+0
如果您在啓動過程之前調用此函數@Lieven,並且它返回true,那麼您將不會再次啓動該過程。時間與它有什麼關係?你是否假設程序的目標是檢測*本身*的前一個實例?沒有跡象表明這是目標。 –
相關問題
- 1. 確定一個線程已經運行了多長時間
- 2. 如果一個程序已經在運行,我該如何關閉程序?
- 3. 你如何獲得一個進程已經運行了多久?
- 4. php,如何確定已經運行了多少代碼?
- 5. 我如何「漂亮」一個已經運行的過程?
- 6. Delphi如何確定哪個程序調用另一個程序?
- 7. 如何確定我是否已經正確實施了d3?
- 8. 如何確保vsvars32.bat已經運行
- 9. Java kill程序如果已經運行
- 10. Windows.Forms:激活已經在正確運行的應用程序FormWindowState
- 11. 如何確定在javascript中已經過了多少分鐘
- 12. 如何確保Proguard已經混淆了應用程序?
- 13. 批處理文件,運行下一個程序,如果已經運行
- 14. 我們如何讓一個Java應用程序永遠運行
- 15. 我試圖運行一個C程序,我已經在終端上安裝了GCC編譯器
- 16. ,我們已經有了QlikView的
- 17. 如何知道進程已經運行了多長時間?
- 18. 如何把一個已經運行的子進程下的nohup
- 19. 如何運行另一個線程後一個線程已經完成了它的行動
- 20. 組件我已經添加到JPanel的,當我運行一個應用程序
- 21. 我如何開始在Visual Studio中的第二個控制檯應用程序時,一個已經運行
- 22. 從jar文件運行的方法,他們已經擴展了一個類
- 23. 一個線程如何確定另一個線程是否已經崩潰?
- 24. 如何確定哪個任務已經死了?
- 25. White如何在已經運行的應用程序上工作?
- 26. 服務器可能已經在另一個進程中運行
- 27. 我如何運行一個jsp程序?
- 28. Netbeans 8.02:程序已經運行的一個實例
- 29. 在我們的Django應用程序之一中,我們已經爲多個視圖定義了多個url,其中多個url匹配
- 30. 如何使重定向用戶,他們已經提交了一個Ajax調用
請參閱MSDN上的[枚舉所有進程](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682623.aspx)。 –
這是你的程序嗎? – MBo
對於爲什麼沒有人投票結束重複,我感到有點困惑?這是一個非常普遍的問題... –