如果一个新进程不是调用进程的子进程,我该如何启动它呢?
示例:
主程序(Caller.exe)
process.start("file.exe")
图片:
发布于 2011-12-09 12:24:49
这是我现在使用的代码。我想它可能会对某些人有用。它接受一个参数。参数是一个base64编码的字符串,它解码为您想要运行的文件的路径。
Module Module1
Sub Main()
Dim CommandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Application.CommandLineArgs
If CommandLineArgs.Count = 1 Then
Try
Dim path As String = FromBase64(CommandLineArgs(0))
Diagnostics.Process.Start(path)
Catch
End Try
End
End If
End Sub
Function FromBase64(ByVal base64 As String) As String
Dim b As Byte() = Convert.FromBase64String(base64)
Return System.Text.Encoding.UTF8.GetString(b)
End Function
End Module
发布于 2011-12-09 00:52:33
如果你启动了一个进程,那么你就是它的父进程。
也许您可以尝试从cmd.exe启动您的进程,这样cmd.exe将成为父进程。
Process proc = Process.Start(new ProcessStartInfo { Arguments = "/C explorer", FileName = "cmd", WindowStyle = ProcessWindowStyle.Hidden });
发布于 2015-10-24 17:08:06
这将运行没有父进程的新进程:
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = @"cmd";
psi.Arguments = "/C start notepad.exe";
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process.Start(psi);
https://stackoverflow.com/questions/8434379
复制相似问题