簡體   English   中英

python中的Windows實時進程創建監視器

[英]Windows real time process creation monitor in python

我正在嘗試在 Python 中創建一個“實時”進程創建監視器,但無法正常工作。

我曾嘗試為此使用 WMI,但似乎錯過了短暫的生命過程並且從未報告過,我猜我在 Python 中使用的 WMI 技術是基於“輪詢”的,這就是我現在所擁有的:

import wmi
c = wmi.WMI()
process_watcher = c.Win32_Process.watch_for("creation")
while True:
    new_process = process_watcher()
    print new_process.Caption

這有效,但如前所述,不是針對短期流程,我使用了WMIPyMI ,它們聲稱是更快的實現,但在兩種情況下我都得到了相同的結果。

我已經測試了我在網上找到的使用事件而不是輪詢的 C# 實現:

var startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));
startWatch.EventArrived += new EventArrivedEventHandler(startWatch_EventArrived);
startWatch.Start();

這效果更好,有沒有辦法在 Python 中使用相同的方法? 我查看了兩個 WMI 項目的文檔,但無法使其正常工作。

答案在這里: http : //timgolden.me.uk/python/wmi/wmi.html

c = wmi.WMI ()

raw_wql = "SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_Process'"
watcher = c.watch_for (raw_wql=raw_wql)
while 1:
  process_created = watcher()
  print(process_created.Name)

或者

c = wmi.WMI ()

watcher = c.watch_for (
  notification_type="Creation",
  wmi_class="Win32_Process",
  delay_secs=2,
)

while 1:
  process_created = watcher()
  print(process_created.Name)
  print(process_created)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM