.net 打开word文件时会触发哪个事件?

.net 打开word文件时会触发哪个事件?,.net,vb.net,.net,Vb.net,我使用无限循环来知道word文件何时打开。 有没有其他方法可以避免无限循环,比如触发器 Do While True 检查运行(新闻状态、旧状态) 线程。线程。睡眠(10000) 环 您可以使用FileSystemWatcher类。 它可用于监视和报告对文件和目录的更改。 在本例中,打开文件会在目录中生成更改 文件结构,因为创建了临时文件,因此 要报告事件的FileSystemWatcher。取决于哪些事件 如果已订阅,则可能会引发多个事件 FileSystemEventArgs提供有关事件的信息

我使用无限循环来知道word文件何时打开。
有没有其他方法可以避免无限循环,比如触发器

Do While True
检查运行(新闻状态、旧状态)
线程。线程。睡眠(10000)
环

您可以使用FileSystemWatcher类。
它可用于监视和报告对文件和目录的更改。

在本例中,打开文件会在目录中生成更改 文件结构,因为创建了临时文件,因此 要报告事件的FileSystemWatcher。
取决于哪些事件 如果已订阅,则可能会引发多个事件

FileSystemEventArgs
提供有关事件的信息:

➜ .ChangeType定义更改的内容(文件已重命名、打开、删除…)
➜ .名称受影响的文件或目录的名称
➜ .文件或目录的完整路径完全限定名


CheckIfRunning做什么?您可以尝试使用ManagementEventWatcher执行类似操作吗?(您可能必须添加System.Management作为参考,默认情况下我没有添加它)的可能副本
Private WithEvents fsw As System.IO.FileSystemWatcher

Private Sub SetupFileSystemWatcher()
    fsw = New System.IO.FileSystemWatcher()
    fsw.Filter = "*.docx"
    fsw.Path = "SomePathToWatch"

    'Set at least a filter to NotifyFilters.LastAccess, so that when a
    'file is opened (saved, created, deleted, renamed), you are notified
    fsw.NotifyFilter = (System.IO.NotifyFilters.LastAccess Or _
                        System.IO.NotifyFilters.LastWrite Or _
                        System.IO.NotifyFilters.FileName Or _
                        System.IO.NotifyFilters.DirectoryName)

    'Set the handler to the events you want to receive
    AddHandler fsw.Changed, AddressOf OnChanged
    AddHandler fsw.Created, AddressOf OnChanged
    AddHandler fsw.Deleted, AddressOf OnChanged
    AddHandler fsw.Renamed, AddressOf OnRenamed
    fsw.EnableRaisingEvents = True
End Sub

'Setup the delegates to receive the events raised by the FileWatcher
Private Shared Sub OnChanged(sender As Object, e As System.IO.FileSystemEventArgs)
    Console.Write("A file has been Opened, Saved, Created or Deleted")
End Sub

Private Shared Sub OnRenamed(sender As Object, e As System.IO.RenamedEventArgs)
    Console.Write("A file has been Renamed")
End Sub