ROSTAM2
جمعه 07 مهر 1402, 08:17 صبح
سلام
من می خوام با WMI رویداد تغییر کلید رجیستری رو متوجه بشم ولی آدرس کلیدی که ایجاد یا حذف می شه رو به من نمی ده و فقط همون آدرسی که خودم به Query دادم برمی گردونه:
اگ اطلاعاتی در این زمینه دارید راهنمایی کنید لطفا:
Imports System.Management
Public Class RegistryEventWatcher
''' <summary>
''' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall
''' </summary>
Shared [Event] As New EventQuery("SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND KeyPath='SOFTWARE\\Microsoft\\Windows\\CurrentVers ion\\Uninstall'")
' Dim WatcherOptions As New EventWatcherOptions()
Shared WithEvents EventWatch As New ManagementEventWatcher([Event])
Public Shared Sub WaitForNext()
Try
With EventWatch
.Options.Timeout = New TimeSpan(0, 0, 5)
.Start()
End With
Catch ex As Exception
Debug.Print(ex.Message)
End Try
End Sub
Private Shared Sub EventWatch_EventArrived(sender As Object, e As EventArrivedEventArgs) Handles EventWatch.EventArrived
Dim Coll As ManagementNamedValueCollection = e.Context
For Each P As PropertyData In e.NewEvent.Properties
Debug.Print("{0}: {1}", P.Name, P.Value)
For Each Q As QualifierData In P.Qualifiers
Debug.Print("{0}: {1}", Q.Name, Q.Value)
Next
Next
For Each P As PropertyData In e.NewEvent.SystemProperties
Debug.Print("{0}: {1}", P.Name, P.Value)
For Each Q As QualifierData In P.Qualifiers
Debug.Print("{0}: {1}", Q.Name, Q.Value)
Next
Next
For Each Item In Coll
Debug.Print(Item.ToString)
Next
End Sub
End Class
من می خوام با WMI رویداد تغییر کلید رجیستری رو متوجه بشم ولی آدرس کلیدی که ایجاد یا حذف می شه رو به من نمی ده و فقط همون آدرسی که خودم به Query دادم برمی گردونه:
اگ اطلاعاتی در این زمینه دارید راهنمایی کنید لطفا:
Imports System.Management
Public Class RegistryEventWatcher
''' <summary>
''' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall
''' </summary>
Shared [Event] As New EventQuery("SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND KeyPath='SOFTWARE\\Microsoft\\Windows\\CurrentVers ion\\Uninstall'")
' Dim WatcherOptions As New EventWatcherOptions()
Shared WithEvents EventWatch As New ManagementEventWatcher([Event])
Public Shared Sub WaitForNext()
Try
With EventWatch
.Options.Timeout = New TimeSpan(0, 0, 5)
.Start()
End With
Catch ex As Exception
Debug.Print(ex.Message)
End Try
End Sub
Private Shared Sub EventWatch_EventArrived(sender As Object, e As EventArrivedEventArgs) Handles EventWatch.EventArrived
Dim Coll As ManagementNamedValueCollection = e.Context
For Each P As PropertyData In e.NewEvent.Properties
Debug.Print("{0}: {1}", P.Name, P.Value)
For Each Q As QualifierData In P.Qualifiers
Debug.Print("{0}: {1}", Q.Name, Q.Value)
Next
Next
For Each P As PropertyData In e.NewEvent.SystemProperties
Debug.Print("{0}: {1}", P.Name, P.Value)
For Each Q As QualifierData In P.Qualifiers
Debug.Print("{0}: {1}", Q.Name, Q.Value)
Next
Next
For Each Item In Coll
Debug.Print(Item.ToString)
Next
End Sub
End Class