C# 从我的程序运行应用程序的启动方式与手动双击不同

C# 从我的程序运行应用程序的启动方式与手动双击不同,c#,windows,executable,C#,Windows,Executable,为了从我的C#程序启动应用程序,我尝试了以下链接中线程中列出的解决方案: 我面临着一个令人困惑的情况:在我的程序运行期间没有新窗口显示,所以我打开了进程列表,希望获得更多信息。下面是发生的情况:当我双击我的可执行文件(案例1:不使用代码执行应用程序)时,会引发5个不同的进程,它们具有相同的名称但不同的PID,如果我关闭应用程序,所有进程也会关闭,因此我假设所有这些进程都应该运行,以便我的应用程序正确启动;另一方面,每当我使用程序启动应用程序时,只启动一个进程,不显示任何窗口(这不是问题,因为我确

为了从我的C#程序启动应用程序,我尝试了以下链接中线程中列出的解决方案:

我面临着一个令人困惑的情况:在我的程序运行期间没有新窗口显示,所以我打开了进程列表,希望获得更多信息。下面是发生的情况:当我双击我的可执行文件(案例1:不使用代码执行应用程序)时,会引发5个不同的进程,它们具有相同的名称但不同的PID,如果我关闭应用程序,所有进程也会关闭,因此我假设所有这些进程都应该运行,以便我的应用程序正确启动;另一方面,每当我使用程序启动应用程序时,只启动一个进程,不显示任何窗口(这不是问题,因为我确保更改参数,以便在需要时显示新窗口)。你知道为什么会有两种不同的行为吗?这取决于我是手动“双击”还是通过C#指令启动?如果这是一个“参数问题”,我是否有办法获得更多关于双击时隐式使用的参数的信息(目前不提供脚本)

谢谢

附件:

C#代码:


如果您是从快捷方式启动,请右键单击并检查正在使用的exe和参数。您必须检查:1)您的链接如何启动应用程序;2) 在
ProcessStartInfo
中,必须设置
WorkingDir
,不要使用
目录。SetCurrentDirectory
!我试图寻找快捷方式提供的参数,实际上没有,我如何查看我的链接如何启动应用程序?您是否设置了
WorkingDir
,并再次尝试在应用程序中运行exe?发生了什么?请使用process explorer查看启动任何一项时实际发生了什么。
using System;
using System.Diagnostics;
using System.IO;

namespace GradeBook
{
    class Program
    {
        static void Main(string[] args)
        {
            ProcessStartInfo start = new ProcessStartInfo();
            start.Arguments = "";
            Directory.SetCurrentDirectory("C:\\Users\\sthg\\AppData\\Local\\Programs\\sthg");
            start.FileName = "myApp.exe";
            start.WindowStyle = ProcessWindowStyle.Normal;
            start.CreateNoWindow = false;
            int exitCode;

            using (Process proc = Process.Start(start))
            {
                proc.WaitForExit();
                exitCode = proc.ExitCode;
            }
        }
    }
}