8

wmiモジュールを使用して、ネットワーク上のリモート コンピューターで実行されているプロセスを表示できます。自作PCで作成・削除されたプロセスをwmiで監視する例です。

import wmi, multiprocessing

def create():
    while True:
        crePro = cp()
        print('Creation',crePro.Caption,crePro.ProcessId,crePro.CreationDate)


def delete():
    while True:
        delPro = dp()
        print('Deletion',delPro.Caption,delPro.ProcessId,delPro.CreationDate)


c = wmi.WMI()
cp = c.Win32_Process.watch_for("creation")
dp = c.Win32_Process.watch_for("deletion")


if __name__ == '__main__':
    createProc = multiprocessing.Process(target = create)
    deleteProc = multiprocessing.Process(target = delete)

    createProc.start()
    deleteProc.start()

win32guiアクティブなウィンドウを取得するための使用についても読みました。

import win32gui
win32gui.GetForegroundWindow()

WM_SETFOCUSWM_ACTIVEの存在について読んだことがありwin32conますが、リモート PC でこれらのストリームに接続する方法がわかりません。

私の質問は: リモート PC のアクティブ ウィンドウを監視するにはどうすればよいですか (またはのいずれWM_SETFOCUSかを使用すると思いますWM_ACTIVE) 。

4

1 に答える 1

1

アクティブなウィンドウを取得するには、次のようにします。

from win32gui import GetWindowText, GetForegroundWindow
active_window = GetWindowText(GetForegroundWindow())

ただし、これは active_window が変更されるたびにシグナルを送信するわけではありません。これを時々読んで、active_window が変更されたかどうかを確認できます。

于 2015-03-05T13:44:47.130 に答える