2014-06-23 1 views
8

wmi 모듈을 사용하여 네트워크상의 원격 컴퓨터에서 발생하는 프로세스를 볼 수 있습니다. 이것은 wmi를 사용하여 내 PC에서 작성 및 삭제 된 프로세스를 모니터하는 예입니다.원격 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() 

나는 활성 창을 얻기 위해 win32gui을 사용하는 방법에 대해서도 읽었습니다.

import win32gui 
win32gui.GetForegroundWindow() 

그리고 win32con에서 WM_SETFOCUSWM_ACTIVE의 존재에 대해 읽었습니다,하지만 난 원격 PC에서 이러한 스트림에 연결하는 방법에 없습니다 확신합니다.

내 질문은 : 나는 당신이 할 수있는 활성 창 얻을

+0

[wmi 이벤트 활성 창/포커스 창] 가능한 복제본 (http://stackoverflow.com/questions/11472216/wmi-event-active-window-focus-window) – rogerdpack

답변

1

(나도 WM_SETFOCUS 또는 WM_ACTIVE를 사용하여 가정 해 봅시다) 원격 PC의 활성 창을 모니터링하려면 어떻게 :

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

을 그러나 이것은 active_window가 바뀔 때마다 당신에게 신호를 보내지 않을 것입니다. 이것을 때때로 읽을 수 있으며 active_window가 변경되었는지 확인할 수 있습니다.