我目前有下面的代碼,運行一個外部的虛擬應用程序(用Cameyo創建),當點擊運行按鈕時。我也有一個定時器,檢查第二次,看看過程(虛擬EXE程序)是否仍然打開。理論上,GetProcessByName應該找到任務管理器中列出的程序的權利?但它不!我甚至嘗試過使用GetProcessByName來殺死進程(單擊另一個按鈕),但進程並未被終止。VB.net GetProcess選項
難道是因爲我虛擬化了想讓GetProcessByName
識別的程序嗎?因此任務管理器中任務的名稱不正確? 例
程序啓動:SmartDefrag.virtual.exe
它運行 的任務管理器顯示它作爲SmartDefrag.exe 使用GetProcessByName(「SmartDefrag.exe」)來禁用運行按鈕,如果過程SmartDefrag.exe運行。
不禁用運行按鈕。
我可以使用TITLE OF PROCESS嗎?或者每當過程打開時,PID是否都一樣?任何其他選項?
代碼:
Private Sub SMDFRunAppMainButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles SMDFRunAppMainButton.Click
' LoadingSMDFMainButton.Visibility = Windows.Visibility.Visible
Dim downloadlocation As String = (currentpath & "\1stAidApps\SMDF\SmartDefrag.virtual.exe")
My.Settings.FileLoad = downloadlocation
Try 'Errors on Cancel
dp1Timer = New DispatcherTimer
dp1Timer.Interval = TimeSpan.FromMilliseconds(1000)
AddHandler dp1Timer.Tick, AddressOf TickMe1
dp1Timer.Start()
fileload = My.Settings.FileLoad
Process.Start(fileload)
Catch ex As Exception
MessageBox.Show("Failed to launch. Please try again.", "Launch Failed")
End Try
End Sub
Private Sub TickMe1()
Dim p() As Process
p = Process.GetProcessesByName("SmartDefrag.exe")
If p.Count > 0 Then
LoadingSMDFMainButton.Visibility = Windows.Visibility.Hidden
SMDFRunAppMainButton.IsEnabled = False
Else
SMDFRunAppMainButton.IsEnabled = True
End If
End Sub
「虛擬」應用程序肯定需要「虛擬」殺手。請首先使用供應商的支持論壇來尋求幫助。 –