2015-01-12 79 views
0

我想在python中使用win32來創建2個函數... 1.檢查某個應用程序是否正在運行的函數。 2.一個函數,檢查應用程序是否安裝...如何檢查是否有任何程序使用python運行在窗口中

我已經嘗試以下檢查是否有東西在運行;

def IsRunning(ProgramName): 
    if win32ui.FindWindow(None, ProgramName): 
     print("its running") 
     return True 
    else: 
     print("its not running!") 

但如果程序沒有運行FindWindow函數總是拋出錯誤之前我的計劃還未獲得else語句,我不知道如何繞過....

+0

,用於檢查進程正在運行,我建議考慮看看[此](http://stackoverflow.com/questions/8135899/how-to-detect-if-a-process-is-running-using-python-on-win-and-mac)問題。 – VHarisop

+0

您可以使用psutil。這裏的討論:http://stackoverflow.com/a/8136371/2326132你得到什麼錯誤? –

+0

如果問題是FindWindow引發錯誤,爲什麼不只是捕獲錯誤? (https://docs.python.org/2/tutorial/errors.html) – firefrorefiddle

回答

1

我需要通過它是這樣的;

def IsRunning(WindowName): 
    try: 
     if win32ui.FindWindow(None, WindowName): 
      print("its running") 
      return True 
    except win32ui.error: 
     print("its not running!") 
     return False 

你需要把窗口標題正是它通過測試並返回true ...

我想寫的下一件事是使用正則表達式找到任何部分類似的功能的標題名稱...

輝煌!現在快樂:)

唯一的是,如果應用程序的創建者決定改變程序的主窗口的標題,你正在嘗試測試,它將不再工作......我希望以更健壯的方式做到這一點...即通過某種獨特的流程代碼!

在任何情況下,這將暫時做的,但如果任何人有一個更明確的答案,請讓我知道

...

相關問題