Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf VB.net GetProcess选项_Wpf_Vb.net_Process_Virtual - Fatal编程技术网

Wpf VB.net GetProcess选项

Wpf VB.net GetProcess选项,wpf,vb.net,process,virtual,Wpf,Vb.net,Process,Virtual,我当前有以下代码,当单击Run按钮时,它运行外部虚拟应用程序(使用Cameyo创建)。我还有一个计时器,每秒钟检查一次进程(虚拟exe程序)是否仍然打开。理论上,GetProcessByName应该找到任务管理器中列出的程序,对吗?但事实并非如此!我甚至尝试使用GetProcessByName终止进程(单击另一个按钮),但进程没有终止 可能是因为我虚拟化了我想要GetProcessByName识别的程序?因此,任务管理器中的任务名称不正确?。 范例 程序已启动:SmartDefrag.virtu

我当前有以下代码,当单击Run按钮时,它运行外部虚拟应用程序(使用Cameyo创建)。我还有一个计时器,每秒钟检查一次进程(虚拟exe程序)是否仍然打开。理论上,GetProcessByName应该找到任务管理器中列出的程序,对吗?但事实并非如此!我甚至尝试使用GetProcessByName终止进程(单击另一个按钮),但进程没有终止

可能是因为我虚拟化了我想要
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