私はeventwathcerを使用しようとしていますが、11文字のプロセス名(AbcdEfghIII.exe)で動作しません。もし私が10文字のプロセス名(AbcdEfgIII.exe)を書いていればその作業。文字数制限がありますか、何か間違っていますか?ここに私のコードは次のとおりです。プロセス名がCustomization
で始まるかどうかの確認:正常にこの作品を作るための方法があるように思えませんのでManagementEventWatcherの文字数制限はありますか?
Imports System.Management
Public Class Form1
Dim WithEvents StopWatch As New ManagementEventWatcher(New WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"))
Private Sub StopWatch_EventArrived(ByVal sender As Object, ByVal e As System.Management.EventArrivedEventArgs)
If e.NewEvent.Properties("ProcessName").Value.ToString = "AbcdEfghIII.exe" Then
MsgBox("Closed")
End If
End Sub
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
StopWatch.Stop()
RemoveHandler StopWatch.EventArrived, AddressOf StopWatch_EventArrived
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
AddHandler StopWatch.EventArrived, AddressOf StopWatch_EventArrived
StopWatch.Start()
Catch g As Exception
MsgBox("Please, run as admin.", MsgBoxStyle.Critical, "Error")
Me.Close()
End Try
End Sub
End Class
「動作していません」_を定義してください。何かエラーを投げますか?また、e.NewEvent.Properties( "ProcessName")。Value.ToString() 'を変数に入れ、[** breakpoint **](https://msdn.microsoft.com/en-us/)を配置します。ライブラリ/ 5557y8b4.aspx)を次の行に追加します。ブレークポイントがヒットしたら、マウスで変数にカーソルを置いて値を調べます。そうすれば、プロセスの名前が実際にあなたが期待するものであるかどうかを知ることができます。 –
解決済み変数を使って、ありがとうございました。 –
@VisualVincent解決済みだと思っていましたが、もう一度動作しないと思っていました... Dim Check = e.NewEvent.Properties( "ProcessName")。Value.ToString Dim check1 = "AbcdEfghIII.exe" check = check1ならば MsgBox ( "閉じた") End If'そして私はホバリングのことを理解していませんでした。 –