日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

WMI技术介绍和应用——接收事件

發布時間:2023/11/27 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WMI技术介绍和应用——接收事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 時隔兩三年,再次更新WMI系列博文。好在功能在三年前就已經實現了,現在只要補充些實例即可。

? ? ? ? 之前介紹的基本都是查詢靜態數據,而本文將要介紹非常有意思的事件接收功能。(轉載請指明出于breaksoftware的csdn博客)

? ? 監控進程創建和死亡

? ? ? ? 首先提一個問題,如何監控系統創建進程?比如有些軟件會監控競品是否創建,如果創建了就通知用戶“不安全”。有一種做法就是使用Windows API遍歷系統的進程,而實際上我們可以通過WMI獲取這樣的信息。

SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'

? ? ? ? 我打開一個記事本,來看看程序的輸出

? ? ? ? 這組信息,我們可能覺得有用的是進程名(Name)、進程啟動命令(CommandLine)、創建時間(CreationDate)、進程所在路徑(ExecutablePath),進程ID(ProcessId )、線程數(ThreadCount)等。

? ? ? ? 我們可以使用如下指令監控進程的死亡,其返回字段和上圖中一致

SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'

?

? ? 監控USB設備插拔

? ? ? ? 之前做PC版的手機助手,其中有一個功能就是監控USB設備插拔功能。如果有設備插入,則用ADB檢測下是否有安卓設備插入。

SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_USBCOntrollerDevice

? ? ? ? 該指令可以監控設備的創建(插入)


? ? ? ? 其中有意義的信息是字段中包含的設備路徑。

? ? ? ? 可以使用如下指令監控設備移除,返回字段和上圖一樣,我就不貼了。

SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_USBCOntrollerDevice'

?

? ? 監控某個進程 ??

? ? ? ? 我們可以通過指定進程名或者進程ID的形式,監控進程的改變

SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' And TargetInstance.Name = 'Notepad.exe'
SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' And TargetInstance.ProcessId  = 13792

? ? ? ? WMI的確是個強大的功能,如果一個進程內部集成一個WMI查詢器,那么很多復雜的功能就會變成簡單的WQL語句。當然它被使用最廣的還是遠程查詢,我們可能在之后的章節中介紹這塊的使用。

? ? 監控電量

? ? ? ? 隨著平板和移動設備的興起,電量將變量設備的一個重要性能,所以監控電量變化,可以衍生出很多產品。

SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Battery'

? ? ? ??
? ? ? ? 其中比較有用的字段是Availability和BatteryStatus

AvailabilityMeaning
1 (0x1)Other
2 (0x2)Unknown
3 (0x3)Running or Full Power
4 (0x4)Warning
5 (0x5)In Test
6 (0x6)Not Applicable
7 (0x7)Power Off
8 (0x8)Off Line
9 (0x9)Off Duty
10 (0xA)Degraded
11 (0xB)Not Installed
12 (0xC)Install Error
13 (0xD)Power Save - Unknown
The device is known to be in a power save mode, but its exact status is unknown.
14 (0xE)Power Save - Low Power Mode
The device is in a power save state but still functioning, and may exhibit degraded performance.
15 (0xF)Power Save - Standby
The device is not functioning, but could be brought to full power quickly.
16 (0x10)Power Cycle
17 (0x11)Power Save - Warning
The device is in a warning state, though also in a power save mode.

?

BatteryStatusMeaning
1The battery is discharging.
2The system has access to AC so no battery is being discharged. However, the battery is not necessarily charging.
3Fully Charged
4Low
5Critical
6Charging
7Charging and High
8Charging and Low
9Charging and Critical
10Undefined
11Partially Charged

? ? ? ? ?工程源碼見《WMI技術介紹和應用——WMI概述》結尾。

總結

以上是生活随笔為你收集整理的WMI技术介绍和应用——接收事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。