2014-06-23 7 views
8

पर सक्रिय विंडो की निगरानी कैसे करें मैं wmi मॉड्यूल का उपयोग कर अपने नेटवर्क पर रिमोट कंप्यूटर पर होने वाली प्रक्रियाओं को देखने में सक्षम हूं। यह मेरे पीसी पर बनाई गई और हटाई गई प्रक्रियाओं की निगरानी करने के लिए 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_SETFOCUS और win32con में WM_ACTIVE के अस्तित्व के बारे में पढ़ा है, लेकिन मैं निश्चित नहीं एक दूरस्थ पीसी पर इन धाराओं से कनेक्ट करने के लिए कैसे कर रहा हूँ।

मेरा प्रश्न है: मैं एक दूरस्थ पीसी के सक्रिय विंडो की निगरानी कैसे

+0

[wmi ईवेंट सक्रिय विंडो/फोकस विंडो] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/11472216/wmi-event-active-window-focus-window) – rogerdpack

उत्तर

1

(मैं या तो WM_SETFOCUS या WM_ACTIVE का उपयोग कर मान लें कि) सक्रिय खिड़की आप ऐसा कर सकते हैं पाने के लिए करते हैं:

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

लेकिन, यह सक्रिय_विंडो में हर बार आपके लिए एक संकेत भेजने वाला नहीं है। आप इसे समय-समय पर पढ़ सकते हैं और देख सकते हैं कि सक्रिय_विंडो बदल गया है या नहीं।