首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >启动新进程,而不是派生进程的子进程

启动新进程,而不是派生进程的子进程
EN

Stack Overflow用户
提问于 2011-12-09 00:37:46
回答 6查看 31K关注 0票数 38

如果一个新进程不是调用进程的子进程,我该如何启动它呢?

示例:

主程序(Caller.exe)

代码语言:javascript
复制
process.start("file.exe")

图片:

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-09 12:24:49

这是我现在使用的代码。我想它可能会对某些人有用。它接受一个参数。参数是一个base64编码的字符串,它解码为您想要运行的文件的路径。

代码语言:javascript
复制
 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
票数 0
EN

Stack Overflow用户

发布于 2011-12-09 00:52:33

如果你启动了一个进程,那么你就是它的父进程。

也许您可以尝试从cmd.exe启动您的进程,这样cmd.exe将成为父进程。

代码语言:javascript
复制
Process proc = Process.Start(new ProcessStartInfo { Arguments = "/C explorer", FileName = "cmd", WindowStyle = ProcessWindowStyle.Hidden });
票数 15
EN

Stack Overflow用户

发布于 2015-10-24 17:08:06

这将运行没有父进程的新进程:

代码语言:javascript
复制
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);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8434379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档