2014-06-23 10 views
8

Ich kann die Prozesse auf einem Remote-Computer in meinem Netzwerk mit dem Modul wmi anzeigen. Dies ist ein Beispiel, das wmi verwendet, um die auf meinem eigenen PC erstellten und gelöschten Prozesse zu überwachen.So überwachen Sie das aktive Fenster auf einem Remote-PC

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() 

habe ich auch über die Verwendung von win32gui las das aktive Fenster zu erhalten.

import win32gui 
win32gui.GetForegroundWindow() 

Und ich habe über die Existenz von WM_SETFOCUS und WM_ACTIVE in win32con lesen, aber ich bin nicht sicher, wie man diese Ströme auf einem entfernten PC zu verbinden.

Meine Frage ist: Wie kann ich das aktive Fenster von einer Remote-PC-Monitor

+0

möglich Duplikat von [wmi Ereignis aktives Fenster/Fokusfenster] (http://stackoverflow.com/questions/11472216/wmi-event-active-window-focus-window) – rogerdpack

Antwort

1

(Ich nehme entweder WM_SETFOCUS oder WM_ACTIVE verwenden) das aktive Fenster zu bekommen, dies zu tun:

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

Aber das wird nicht jedes Mal ein Signal an Sie senden, wenn sich das active_window ändert. Sie können dies von Zeit zu Zeit lesen und sehen, ob sich das active_window geändert hat.

Verwandte Themen