質問

これは完全に機能します:

def find_processes():
    name = "ProcessName.exe"
    pid_list = psutil.get_pid_list()
    for pid in pid_list:
        try:
            if str(psutil.Process(pid).name()) == name:
                return True
        except:
            pass
    return False
.

これは:

def find_processes():
    name = "ProcessName.exe"
    pid_list = psutil.get_pid_list()
    for pid in pid_list:
        if str(psutil.Process(pid).name()) == name:
            return True
    return False
.

エラーを発生させる:アクセスしました:( PID= 560) 私はWindows環境にあり、すべてのプロセスの名前にアクセスする必要があります。私はすでにワークコード(前者)を持っているので、私の質問は好奇心からです。

最初の例では、try / exceptステートメントを実行するのは、2番目の例で除去されないのですか?

役に立ちましたか?

解決

各プロセスからのすべての情報は、rootユーザー/管理者でない限り、あなたが利用できるようになります。この質問を参照してください: Windows上のPython PSutilは、アクセスが拒否されました

あなたはあなたの最初の例を変えるのが良いでしょう。

try:    
    if str(psutil.Process(pid).name()) == name:      
        return True    
except AccessDenied:    
    print "Unable to access PID:",pid
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top