|
You last visited: Today at 16:30
Advertisement
Process Start
Discussion on Process Start within the .NET Languages forum part of the Coders Den category.
10/26/2015, 00:04
|
#1
|
elite*gold: 295
Join Date: Sep 2015
Posts: 323
Received Thanks: 133
|
Process Start
Hallo Coders-Den,
leider habe ich ein Problem und ich finde keine Lösung. Bei Stackoverflow habe ich mal dazu was geschrieben und ich bin mal so frei, das zu zitieren:
In my application, there's a button "Start". Start should start a process featuring parameters. Regardless of the method I am using, it's just freezing then and doesn't throw any error at all. I tried to use
Code:
Process.Start(Environment.CurrentDirectory + "/test/testfile.exe", "1 8 EN");
as well as
Code:
Process test = new Process();
test.StartInfo.Arguments = "1 8 EN";
test.StartInfo.FileName = Environment.CurrentDirectory + "/test/testfile.exe";
test.Start();
I am using GhostTheme and a ghost button, I've tried a normal button but that didn't work either. Latter method worked for me just fine over the years, but apparently it does not any longer. It's just freezing when pressing the "Start" button. What to do?
Ich kann gar keinen Prozess starten, ob mit oder ohne Parametern ist egal, auch die auszuführende Datei selbst spielt offenbar keine Rolle. Weiß jemand mehr?
|
|
|
10/26/2015, 05:14
|
#2
|
elite*gold: 67
Join Date: Aug 2014
Posts: 1,321
Received Thanks: 927
|
|
|
|
10/26/2015, 11:06
|
#3
|
elite*gold: 0
Join Date: Mar 2012
Posts: 886
Received Thanks: 118
|
Hm, also bei mir funktioniert das so.
Sicher, dass du den Pfad richtig angegeben hast und vollen Zugriff auf die auszuführende Datei hast?
Eventuell kannst du mal:
Code:
Process.Start(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "/test/testfile.exe", "1 8 EN");
probieren.
|
|
|
10/26/2015, 11:33
|
#4
|
elite*gold: 295
Join Date: Sep 2015
Posts: 323
Received Thanks: 133
|
Quote:
Originally Posted by Xio.
|
War nicht allzu hilfreich..
Quote:
Originally Posted by schokox34
Hm, also bei mir funktioniert das so.
Sicher, dass du den Pfad richtig angegeben hast und vollen Zugriff auf die auszuführende Datei hast?
Eventuell kannst du mal:
Code:
Process.Start(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "/test/testfile.exe", "1 8 EN");
probieren.
|
Bei mir hat es auch immer funktioniert und klappt auch in jeder anderen Anwendung super, nur in dieser Anwendung mit dem GhostTheme nicht.
|
|
|
10/26/2015, 13:00
|
#5
|
elite*gold: 67
Join Date: Aug 2014
Posts: 1,321
Received Thanks: 927
|
PHP Code:
string exeDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); Directory.SetCurrentDirectory(exeDir); Process.Start(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "/test/testfile.exe", "1 8 EN");
Oder besser... p = new Process
PHP Code:
p.StartInfo.WorkingDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
|
|
|
10/28/2015, 01:58
|
#6
|
elite*gold: 3
Join Date: Oct 2013
Posts: 5,814
Received Thanks: 1,813
|
Vllt musst du die WorkingDir angeben.
Code:
Process p = new Process();
p.StartInfo.WorkingDirectory = ".../test/";
p.StartInfo.FileName = @ "../test/test.exe";
p.StartInfo.Arguments = "1 8 EN"; //
p.StartInfo.UseShellExecute = false;
p.Start();
|
|
|
10/30/2015, 20:23
|
#7
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 881
|
Quote:
Originally Posted by FreddieMercury
Hallo Coders-Den,
leider habe ich ein Problem und ich finde keine Lösung. Bei Stackoverflow habe ich mal dazu was geschrieben und ich bin mal so frei, das zu zitieren:
In my application, there's a button "Start". Start should start a process featuring parameters. Regardless of the method I am using, it's just freezing then and doesn't throw any error at all. I tried to use
Code:
Process.Start(Environment.CurrentDirectory + "/test/testfile.exe", "1 8 EN");
as well as
Code:
Process test = new Process();
test.StartInfo.Arguments = "1 8 EN";
test.StartInfo.FileName = Environment.CurrentDirectory + "/test/testfile.exe";
test.Start();
I am using GhostTheme and a ghost button, I've tried a normal button but that didn't work either. Latter method worked for me just fine over the years, but apparently it does not any longer. It's just freezing when pressing the "Start" button. What to do?
Ich kann gar keinen Prozess starten, ob mit oder ohne Parametern ist egal, auch die auszuführende Datei selbst spielt offenbar keine Rolle. Weiß jemand mehr?
|
Lol. Eventuell die Backslashes falsch rum gemacht bei den Pfaden?
Man beachte den unterschied zwischen "\test\test.exe" und "/test/test.exe". Richtig ist normalerweise ersteres, wobei du es für C# entweder mit doppeltem Backslash oder mit nem @ davor schreiben musst.
Um das ganze unabhängig von der Eingabe zu testen:
Erstelle ein neues Consolenprogramm und füge folgendes Snippet in die Program.cs ein:
PHP Code:
class Program { static void Main(string[] args) { if (args.Length > 0) { Console.WriteLine("Prozess wurde mit Parametern gestartet."); Console.Beep(1337, 420); Console.ReadKey(); } else { // Start this program with arguments StartProcess(System.Reflection.Assembly.GetEntryAssembly().Location); } } public static void StartProcess(string exePath) { using (Process p = new Process()) { p.StartInfo.FileName = exePath; p.StartInfo.Arguments = "yolo1337"; p.Start(); } } }
Dieses Programm wird sich selbst mit Argumenten starten und einen Beep-Ton ausgeben sowie ne Nachricht anzeigen, wenn es geklappt hat.
PS: Willst du einen Pfad bauen, ohne dich um das Backslash-Problem kümmern zu müssen:
Code:
Path.Combine("teil1", "teil2", "yolo.exe");
// => "teil1\\teil2\\yolo.exe" oder "teil1/teil2/yolo.exe" je nach OS, Pfad stimmt immer
PPS: using Statement: Gibt den Speicher am Ende des using-Blocks wieder frei, auch bei einem Error/Crash.
Wann immer möglich benutzen, wenn du IDisposable Objects hast.
Edit: Test vereinfacht
|
|
|
10/31/2015, 12:49
|
#8
|
elite*gold: 295
Join Date: Sep 2015
Posts: 323
Received Thanks: 133
|
Quote:
Originally Posted by D3luxe.
Lol. Eventuell die Backslashes falsch rum gemacht bei den Pfaden?
Man beachte den unterschied zwischen "\test\test.exe" und "/test/test.exe". Richtig ist normalerweise ersteres, wobei du es für C# entweder mit doppeltem Backslash oder mit nem @ davor schreiben musst.
Um das ganze unabhängig von der Eingabe zu testen:
Erstelle ein neues Consolenprogramm und füge folgendes Snippet in die Program.cs ein:
PHP Code:
class Program { static void Main(string[] args) { if (args.Length > 0) { Console.WriteLine("Prozess wurde mit Parametern gestartet."); Console.Beep(1337, 420); Console.ReadKey(); } else { // Start this program with arguments StartProcess(System.Reflection.Assembly.GetEntryAssembly().Location); } } public static void StartProcess(string exePath) { using (Process p = new Process()) { p.StartInfo.FileName = exePath; p.StartInfo.Arguments = "yolo1337"; p.Start(); } } }
Dieses Programm wird sich selbst mit Argumenten starten und einen Beep-Ton ausgeben sowie ne Nachricht anzeigen, wenn es geklappt hat.
PS: Willst du einen Pfad bauen, ohne dich um das Backslash-Problem kümmern zu müssen:
Code:
Path.Combine("teil1", "teil2", "yolo.exe");
// => "teil1\\teil2\\yolo.exe" oder "teil1/teil2/yolo.exe" je nach OS, Pfad stimmt immer
PPS: using Statement: Gibt den Speicher am Ende des using-Blocks wieder frei, auch bei einem Error/Crash.
Wann immer möglich benutzen, wenn du IDisposable Objects hast.
Edit: Test vereinfacht
|
Zunächst möchte ich dir für deine Antwort danken. In jeder anderen Anwendung hat meine Methode super geklappt und es lag offensichtlich am GhostTheme. Gelöst habe ich es aber einfach durch einen zweiten Prozess, der durch Prozessinteraktion vom anderen Prozess den Startbefehl erhält. Sehr umständlich, funktioniert aber nun.
Grüße
|
|
|
|
Similar Threads
|
[VB.NET] Process.start
09/30/2015 - .NET Languages - 6 Replies
Hi :),
Ich hab ein kleines Problem, welches ich nicht gelöst bekomme.
Ich möchte gerne ein Programm/Game starten.
Process.Start("C:\example\test.exe")
Jedoch möchte ich das gewünschte Programm ohne den Client Patcher starten.
|
Visual Basic 10 Frage zu Process.Start
07/14/2015 - Off Topic - 2 Replies
Hey Com, ich verzweifel hier gerade.. ich bin ein totaler neuling bei Visual Basic und habe folgendes Problem. Ich möchte, das wenn ich einen Button klicke sich ein Programm vom Desktop öffnet. Das Problem ist ich mache das für unseren Clan und wenn dort der C:\Users\NAME\Desktop\Sempi.exe
anders ist funktioniert das ganze nicht mehr oder?
|
SMC Start Service process with another way
08/08/2012 - SRO Private Server - 3 Replies
Anybody knows how to start service which smc does with external tool?
Careful: I'm not talking about starting process, im talking about the start service thingy which smc can do.
|
Start Game Process Error: 5
08/10/2011 - Cabal Online - 3 Replies
---------------------------
CabalRider
---------------------------
Start Game Process Error: 5
path:D:\ReddGames\Cabal Ph\cabalmain.exe
cmdline:"D:\ReddGames\Cabal Ph\cabalmain.exe" husky
---------------------------
OK
---------------------------
|
All times are GMT +2. The time now is 16:30.
|
|