.EXE 不以 Process.Start(path_to.exe) 开头
.EXE does not start with Process.Start(path_to.exe)
我已经使用 Inno Setup 创建了 DatePicker.exe
。
Directory: C:\Program Files (x86)\MyJournal
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 8/17/2017 4:44 AM Log
-a---- 8/17/2017 3:30 PM 2747 appointments.bin
-a---- 8/17/2017 1:46 PM 45056 DatePicker.exe
-a---- 8/8/2017 8:35 AM 189 DatePicker.exe.config
-a---- 8/17/2017 1:46 PM 79360 DatePicker.pdb
-a---- 8/15/2017 10:17 AM 1122 DatePicker.SED
-a---- 8/17/2017 1:47 PM 12946 unins000.dat
-a---- 8/17/2017 1:47 PM 725157 unins000.exe
这不起作用 - DatePicker.exe
打不开,也没有错误:
Process.Start(@"C:\Program Files (x86)\MyJournal\DatePicker.exe");
但这行得通
Process.Start(@"C:\Users\Public\Desktop\MyJournal.lnk");
Link from desktop 指向与上面相同的路径。
为什么第一个示例不起作用?
更新。
按照建议我尝试设置工作目录。
但到目前为止还没有运气。这对我不起作用。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory = @"C:\Program Files(x86)\MyJournal";
startInfo.FileName = @"DatePicker.exe";
startInfo.CreateNoWindow = true;
Process myProcess = Process.Start(startInfo);
更新#2;
It finally works with
var psi = new ProcessStartInfo(@"C:\Program Files (x86)\MyJournal\DatePicker.exe");
psi.WorkingDirectory = @"C:\Program Files (x86)\MyJournal";
Process.Start(psi);
难道不是运行因为没有设置默认目录?尝试改用 StartInfo 参数,并将工作目录设置为与程序目录相同。
您是否尝试过从命令提示符启动它?如果应用程序在手动打开时运行正常,可能是因为 UseShellExecute
begin true by default.
尝试startInfo.UseShellExecute = false;
根据 MSDN,当 UseShellExecute
为 true 或 UserName
和 Password
属性不正确时,startInfo.CreateNoWindow = true;
将被忽略空.
我已经使用 Inno Setup 创建了 DatePicker.exe
。
Directory: C:\Program Files (x86)\MyJournal
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 8/17/2017 4:44 AM Log
-a---- 8/17/2017 3:30 PM 2747 appointments.bin
-a---- 8/17/2017 1:46 PM 45056 DatePicker.exe
-a---- 8/8/2017 8:35 AM 189 DatePicker.exe.config
-a---- 8/17/2017 1:46 PM 79360 DatePicker.pdb
-a---- 8/15/2017 10:17 AM 1122 DatePicker.SED
-a---- 8/17/2017 1:47 PM 12946 unins000.dat
-a---- 8/17/2017 1:47 PM 725157 unins000.exe
这不起作用 - DatePicker.exe
打不开,也没有错误:
Process.Start(@"C:\Program Files (x86)\MyJournal\DatePicker.exe");
但这行得通
Process.Start(@"C:\Users\Public\Desktop\MyJournal.lnk");
Link from desktop 指向与上面相同的路径。
为什么第一个示例不起作用?
更新。
按照建议我尝试设置工作目录。 但到目前为止还没有运气。这对我不起作用。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory = @"C:\Program Files(x86)\MyJournal";
startInfo.FileName = @"DatePicker.exe";
startInfo.CreateNoWindow = true;
Process myProcess = Process.Start(startInfo);
更新#2;
It finally works with
var psi = new ProcessStartInfo(@"C:\Program Files (x86)\MyJournal\DatePicker.exe");
psi.WorkingDirectory = @"C:\Program Files (x86)\MyJournal";
Process.Start(psi);
难道不是运行因为没有设置默认目录?尝试改用 StartInfo 参数,并将工作目录设置为与程序目录相同。
您是否尝试过从命令提示符启动它?如果应用程序在手动打开时运行正常,可能是因为 UseShellExecute
begin true by default.
尝试startInfo.UseShellExecute = false;
根据 MSDN,当 UseShellExecute
为 true 或 UserName
和 Password
属性不正确时,startInfo.CreateNoWindow = true;
将被忽略空.