Autor Beitrag
MarcoG88
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Sa 04.12.10 13:52 
Hi,

Ich habe folgendes Problem. Bei mir liegt eine .exe Datei im Ordner Eigene Dateien/Eigene Dokumente/MeinProgramm_NR1.exe
Dieses Programm kann dateien im eigenen Programmpfad erstellen.

Jetzt habe ich ein Programm geschrieben (Ich nenn es mal MeinProgramm_NR2.exe) das mit Process.Start das Programm "MeinProgramm_NR1.exe" aufruft. Das Programm_NR2 liegt aber in einem anderen Ordner. Wenn ich nun das Programm_NR2 aufrufe
öffnet es wie gewollt Programm_NR1. Jedoch erstellt Programm_NR1 nun die Datei im Ordner von Programm_NR2. Wie kann ich das unterbinden, sodass das Programm_NR1 den richtig Application.StartupPath hat?

Folgender Code wird zum öffnen des Programms benutzt:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
private void ListBox_DoubleClick(object sender, EventArgs e)
        {
            if (this.listBox1.SelectedItem != null)
            {
                foreach (string s in fileList)
                {
                    if (s.EndsWith(this.listBox1.SelectedItem.ToString()))
                    {
                        Process programm = new Process();
                        programm.StartInfo.FileName = s;
                        programm.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                        programm.Start();
                    }
                }
            }
        }


Gruß
Marco
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 04.12.10 13:58 
Ich sehe auch nirgends, dass du das Arbeitsverzeichnis des zu startenden Prozesses in der StartInfo setzt. Also woher soll er wissen, welches du denn gerne gesetzt hättest? :gruebel:
msdn.microsoft.com/d...orkingdirectory.aspx

Für diesen Beitrag haben gedankt: MarcoG88
MarcoG88 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Sa 04.12.10 14:50 
Ah, ok.
Wusste nicht das ich ein WorkingDirectory festlegen muss.

Falls jemand das gleiche Problem mal hat, so hab ich das jetzt gelöst:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
if (s.EndsWith(this.listBox1.SelectedItem.ToString()))
                    {
                        Process programm = new Process();
                        programm.StartInfo.FileName = s;
                        FileInfo fi = new FileInfo(s);
                        programm.StartInfo.WorkingDirectory = fi.Directory.ToString();
                        programm.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                        programm.Start();
                    }