lsq726 发表于 2010-1-3 21:48:24

关于WMI中一个监控文件夹,如何让他可以监控子目录

本帖最后由 lsq726 于 2010-1-3 23:01 编辑

在WMI教程中有个例子。:
文件监控的例子
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")

$colMonitoredEvents = $objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " _
& "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
& "TargetInstance.GroupComponent= " _
& "'Win32_Directory.Name=""c:\\\\1""'")

While 1
$objEventObject = $colMonitoredEvents.NextEvent()

Select
Case $objEventObject.Path_.Class()="__InstanceDeletionEvent"
ConsoleWrite ("A file was just deleted: " & $objEventObject.TargetInstance.PartComponent() & @CR)
EndSelect
WEnd
这段代码 只能对当前目录下删除文件进行监控。不能对其子目录的删除文件进行监控。

如果c:\1下有很多子目录
c:\1\1
c:\1\2
c:\1\33333
c:\1\555555555555555555555
c:\1\67
c:\1\21
c:\1\234
c:\1\5436457568
怎么可以让其 对所有的目录的子目录也能进行删除监控?

还请高手指点

ceoguang 发表于 2010-1-3 22:03:28

wmi太慢了.
试试这个,api的,好不好试过就知道.
赚个小钱,哈哈

lsq726 发表于 2010-1-3 22:11:23

慢点不要紧。帮忙看看怎么修改WMI的代码。。顺便能学习一下WMI,实在是方便
顺便把你的也买了。

lsq726 发表于 2010-1-3 22:13:20

本帖最后由 lsq726 于 2010-1-3 22:18 编辑

看了你的代码
以前下过。有问题的。
点监控后GUI 失控。
还有代码冗长。

完全看不懂。。
===
能监控多级目录。
不过很容易崩溃

ceoguang 发表于 2010-1-3 22:22:35

用的是事件模式,GUI失控是因为消息太多,接收不过来吧

lsq726 发表于 2010-1-3 22:34:17

恩,可能是吧。。不过现在 我只想了解一下WMI怎么 能监控子目录。。谢谢LS的热心朋友。

lsq726 发表于 2010-1-7 22:21:50

自己再顶一下,,,。。
页: [1]
查看完整版本: 关于WMI中一个监控文件夹,如何让他可以监控子目录