2017-08-17 3 views
0

Ich habe DatePicker.exe mit Inno Setup erstellt..EXE startet nicht mit Process.Start (path_to.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 

Das funktioniert nicht - DatePicker.exe nicht geöffnet wird, und es gibt keine Fehler:

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

Das funktioniert aber

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

Link von Desktop-Punkte auf dem gleichen Weg wie oben .

Warum funktioniert das erste Beispiel nicht?

UPDATE.

Wie vorgeschlagen habe ich versucht, das Arbeitsverzeichnis festzulegen. Aber bisher kein Glück. Das hat nicht für mich funktioniert.

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.WorkingDirectory = @"C:\Program Files(x86)\MyJournal"; 
startInfo.FileName = @"DatePicker.exe"; 
startInfo.CreateNoWindow = true; 

Process myProcess = Process.Start(startInfo); 

UPDATE # 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); 
+0

Haben Sie 'Process.Start (@" C: \ PROGRA ~ 2 \ MyJournal \ DatePicker.exe ") versucht;'? –

+1

Gibt es einen Arbeitsordner für diese Verknüpfung? Stürzt das Programm sofort beim Start ab? –

+0

Wenn Sie eine Kopie von DatePicker.exe auf Ihrem Desktop speichern und versuchen, sie auf Ihrem Desktop auszuführen, funktioniert das? – 0liveradam8

Antwort

1

Ist es möglich, dass es nicht ausgeführt wird, weil das Standardverzeichnis nicht festgelegt ist? Verwenden Sie stattdessen einen StartInfo-Parameter und legen Sie das Arbeitsverzeichnis auf das gleiche wie das Programmverzeichnis fest.

0

Haben Sie versucht, es über die Befehlszeile zu starten? Wenn die Anwendung ordnungsgemäß funktioniert, wenn sie manuell geöffnet wird, liegt das möglicherweise daran, dass UseShellExecute standardmäßig true beginnt.

Versuchen startInfo.UseShellExecute = false;

MSDN Nach startInfo.CreateNoWindow = true; ignoriert, wenn UseShellExecutewahr ist oder wenn die UserName und Password Eigenschaften sind nicht null.

Verwandte Themen