我的问题不回答问题When do we need to set UseShellExecute to True? 如果您认为是,请解释如何?
我需要在应用程序进程启动之前为我的Windows窗体应用程序项目设置useshellexecute为true,但是我找不到项目中的哪个位置需要进行更改?
它是Visual Studio 2015中的Windows窗体应用程序项目。
该应用程序的主要入口点如下所示:
service.FindFolders
我应该在哪里使用[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
并指定ProcessStartInfo
值?
修改 非常感谢Matthew Watson,他建议我改变环境CurrentDirectory来解决这个问题!如果您将其作为答案发布,我会将您的anser标记为正确的!
答案 0 :(得分:0)
您可以使用ProcessStartInfo
并指定UseShellExecute
值。
ProcessStartInfo startInfo = new ProcessStartInfo("exepath");
startInfo.Arguments = args; //argument
startInfo.UseShellExecute = true;
Process.Start(startInfo);
答案 1 :(得分:0)
您可以尝试将其放在程序的开头:
Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
这将确保程序启动时程序的当前工作目录(CWD)始终设置为与可执行文件相同的文件夹。
我怀疑发生的事情是您使用的快捷方式文件夹中的“Start in”属性缺少或不正确。修复这将是另一种方法(右键单击快捷方式,选择属性,然后选择快捷方式选项卡,并在开始部分。)