2014-06-23 12 views
8

wmi modülünü kullanarak ağımdaki uzak bir bilgisayarda gerçekleşen işlemleri görüntüleyebiliyorum. Bu, kendi bilgisayarımda oluşturulan ve silinen süreçleri izlemek için wmi'yi kullanan bir örnektir.Uzak bir PC'de etkin pencerenin izlenmesi

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

Ben de aktif pencereyi almak için win32gui kullanarak okudum.

import win32gui 
win32gui.GetForegroundWindow() 

Ve win32con içinde WM_SETFOCUS ve WM_ACTIVE varlığı hakkında okudum, ama ben uzak bir PC'de bu akışları bağlanmak için değil nasıl eminim.

Sorum şu: ben bunu yapabilirsiniz Aktif pencere almak için

+0

[wmi olay etkin pencere/odak penceresi] 'nin olası kopyası (http://stackoverflow.com/questions/11472216/wmi-event-active-window-focus-window) – rogerdpack

cevap

1

(Ya WM_SETFOCUS veya WM_ACTIVE kullanarak varsayalım) uzak bir PC'nin aktif pencereyi izlemek nasıl:

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

Ancak bu, active_window'un her değiştiğinde size bir sinyal göndermez. Bunu zaman zaman okuyabilir ve active_window'un değişip değişmediğini görebilirsiniz.

İlgili konular