Jak uruchomoić aplikację z poziomu C# ?

0

Witam.

Mam pytanko. Jak w C# odpalić inną aplikację ?
Przykładowo chciałbym poprzez kliknięcia odpalić zupełnie inny program.

0
string filePath = @"C:\JakisProgram.exe";
System.Diagnostics.Process p = new System.Diagnostics.Process();				
p.StartInfo.WorkingDirectory = Path.GetDirectoryName(filePath);
p.StartInfo.FileName = Path.GetFileName(filePath);
try
{ 
	p.Start();
}
catch (Exception e)
{
	MessageBox.Show(e.Message,"error",MessageBoxButtons.OK, MessageBoxIcon.Error);
}
0

dzięki za pomoc... ale jeszcze jedno pytanko. Walczyłem dzisiaj z tym kodem, żeby odpalić jakąś aplikację i to mi działa. Problem pojawia się kiedy w ścieżce muszę podać dłuższy ciąg. A dodatkowo aplikacja jest w program files więc teoretycznie powinienem użyć cudzysłowów i żeby działało muszę odpalić to z konsoli powiedzmy tak:

"C:\Program Files\cos.exe" "C:\Program files\cosinnego.xxx"
lub też
C:\Program Files\cos.exe C:\Program files\cosinnego.xxx

niestety o ile z lini komend działa bez cudzysłowów o tyle w aplikacji trzeba ich już użyć.

Próbowałem tak:

p.StartInfo.WorkingDirectory = @"C:\Program Files\cos.exe C:\Program files\cosinnego.xxx";
p.StartInfo.FileName = @"C:\Program Files\cos.exe C:\Program files\cosinnego.xxx";

ale wtedy nie widzi tego pliku...

próbowałem też z cudzysłowami, ale ostatecznie się zamieszałem i mi się nie udało :/

0

Sprobuj np.

@"C:\Program Files\cos.exe "C:\Program files\cosinnego.xxx""

pozdrawiam
johny

0

Przed \ podstaw \ czyli np. "c:\Program Files\..."

0

Nie baldzo, bo przeciez jest @ przed stringiem...

pozdrawiam
johny

0

Heh a ja nadal się męczę z tym samym... próbowałem tak jak proponowaliście ale nadal nic.

Spróbowałem więc tak:

p.StartInfo.WorkingDirectory = @"\C:\Program Files\Folder\Aplikacja";
p.StartInfo.FileName = "start.exe mapa.jpg";

uruchamia się aplikacja, ale jak uruchamiam zdarzenie to dostaję komunikat:
"The system cannont find the file specified"

próbowałem jeszcze tak:
p.StartInfo.FileName = @"/"ustation.exe/" /"tur2006.dbf/"";

ale wywala błąd i nie kompiluje się...

0

Yyy, a czemu \C i czemu /" ?

pozdrawiam
johny

0

sorka źle przepisałem ;)

oczywiście próbowałem tak:

p.StartInfo.WorkingDirectory = @"C:\Program Files\Folder\Aplikacja";
p.StartInfo.FileName = "start.exe mapa.jpg";

próbowałem jeszcze tak:
p.StartInfo.FileName = ""start.exe" "mapa.jpg"";

0

Sprobuj tak:

Process process = Process.Start(@"c:\katalog\aplikacji\aplikacja.exe", @"parametr do przekazania np. c:\inna_aplikacja\aplikacja");

2.
<code class="c#">
ProcessStartInfo startInfo = new ProcessStartInfo(@"c:\katalog\aplikacji\aplikacja.exe");
startInfo.Arguments = @"parametr do przekazania np. c:\inna_aplikacja\aplikacja";
Process process = Process.Start(startInfo);

pozdrawiam
johny

0

heyka

zrobiłem tak jak napisałeś i się już odpala ta domyślna aplikacja, ale w momencie jak powinna załadować określony plik to chce się odwołać do "C:/Program.dgn" :/
najlepsze jest to, że jak skopiowałem ten plik w to miejsce to się otwiera :| więc tak jakby nie widzi tego argumentu :/

0

ok pomarudziłem i wreszcie się udało :]

zrobiłem tylko lekką modyfikację:

ProcessStartInfo startInfo = new ProcessStartInfo(@"c:\katalog\aplikacji\aplikacja.exe");
startInfo.WorkingDirectory = @"c:\katalog\aplikacji\";
startInfo.Arguments = @"plik.xxx";
Process process = Process.Start(startInfo);

dzięki wielkie za pomoc...

1 użytkowników online, w tym zalogowanych: 0, gości: 1