Wpf VB.net GetProcess选项
我当前有以下代码,当单击Run按钮时,它运行外部虚拟应用程序(使用Cameyo创建)。我还有一个计时器,每秒钟检查一次进程(虚拟exe程序)是否仍然打开。理论上,GetProcessByName应该找到任务管理器中列出的程序,对吗?但事实并非如此!我甚至尝试使用GetProcessByName终止进程(单击另一个按钮),但进程没有终止 可能是因为我虚拟化了我想要Wpf VB.net GetProcess选项,wpf,vb.net,process,virtual,Wpf,Vb.net,Process,Virtual,我当前有以下代码,当单击Run按钮时,它运行外部虚拟应用程序(使用Cameyo创建)。我还有一个计时器,每秒钟检查一次进程(虚拟exe程序)是否仍然打开。理论上,GetProcessByName应该找到任务管理器中列出的程序,对吗?但事实并非如此!我甚至尝试使用GetProcessByName终止进程(单击另一个按钮),但进程没有终止 可能是因为我虚拟化了我想要GetProcessByName识别的程序?因此,任务管理器中的任务名称不正确?。 范例 程序已启动:SmartDefrag.virtu
GetProcessByName
识别的程序?因此,任务管理器中的任务名称不正确?。
范例
程序已启动:SmartDefrag.virtual.exe
它运行
任务管理器将其显示为SmartDefrag.exe
如果进程SmartDefrag.exe正在运行,请使用GetProcessByName(“SmartDefrag.exe”)禁用运行按钮
不禁用运行按钮
我可以用流程名称吗?还是每次进程打开时PID都相同?还有其他选择吗
代码:
GetProcessByName不是完整路径,而是进程的“名称”。这可能需要
GetProcessByName(“SmartDefrag”)
从:
进程名称是进程(如Outlook)的友好名称,它不包括.exe扩展名或路径
GetProcessByName不是完整路径,而是进程的“名称”。这可能需要
GetProcessByName(“SmartDefrag”)
从:
进程名称是进程(如Outlook)的友好名称,它不包括.exe扩展名或路径
“虚拟”应用程序肯定需要“虚拟”杀戮。一定要先使用供应商的支持论坛来寻求帮助。一个“虚拟”应用程序肯定需要一个“虚拟”杀戮。请务必先使用供应商的支持论坛寻求帮助。
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