代码之家  ›  专栏  ›  技术社区  ›  LetzerWille

.EXE不以进程开头。开始(路径u到.exe)

  •  0
  • LetzerWille  · 技术社区  · 7 年前

    我已经创建了 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
    

    日期选择器。exe文件 不会打开,并且没有错误:

    Process.Start(@"C:\Program Files (x86)\MyJournal\DatePicker.exe");
    

    但这是可行的

    Process.Start(@"C:\Users\Public\Desktop\MyJournal.lnk");
    

    为什么第一个例子不起作用?

    更新。

    正如建议的那样,我已经尝试设置工作目录。

    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);
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   SqlACID    7 年前

    StartInfo 参数,并将工作目录设置为与程序目录相同。

        2
  •  0
  •   Peter Sørensen    7 年前

    你试过从命令提示符启动它吗?如果应用程序在手动打开时工作正常,可能是因为 UseShellExecute 开始 真的

    尝试 startInfo.UseShellExecute = false;

    根据MSDN startInfo.CreateNoWindow = true; 使用ShellExecute 真的 UserName Password 属性不是 无效的 .