Autor Beitrag
halliba
Hält's aus hier
Beiträge: 8

Win 7
C# (VS 2010)
BeitragVerfasst: Fr 22.06.12 22:50 
moin leute :)

ich bin seit einigen tagen auf der suche nach der Lösung für ein Problem mit ner C# Konsolenanwendung.
Ich hab ne Server Software für das Spiel "Minecraft" die man über eine bat datei aufruft. (Der Server ist in Java programiert)
Das sieht dann wie folgt aus:
ausblenden Quelltext
1:
2:
3:
4:
@ECHO OFF
SET BINDIR=%~dp0
CD /D "%BINDIR%"
"%ProgramFiles%\Java\jre7\bin\java.exe" -Xincgc -Xmx1G -jar craftbukkit-1.2.5-R2.0.jar


Ich hoffe ihr versteht den aufruf. Die Ausgabe der software und die befehle für den server werden dann über die Konsole eingegeben.

Ich würd nun gern ne C# Konsolenanwendung schreiben mit der das Servermanagement verbessert werden würde. im Moment muss man neue Server von Hand erstellen die bat dateien schreiben etc...

Nun stellt sich die Frage wie ich die Ausgabe der java Anwendung in meine Consolenanwendung einbauen.
Also ich will kein zewites Konsolenfenster haben. Sonst würd ich das ja einfach so machen:
ausblenden C#-Quelltext
1:
System.Diagnostics.Process.Start(System.Environment.SpecialFolder.ProgramFiles + "\Java\jre7\bin\java.exe""-Xincgc -Xmx1G -jar craftbukkit-1.2.5-R2.0.jar");					

Aber wie gesagt dann öffnet sich ja ne zweite Konsole. Und wenn ich schon eine offen hab kann ich sie auch nutzen^^

Also ich hoffe ihr versteht mein problem.
greetz halliba
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 23.06.12 09:09 
Hallo halliba,

schau dir mal die ProcessStartInfo.CreateNoWindow-Eigenschaft an.
halliba Threadstarter
Hält's aus hier
Beiträge: 8

Win 7
C# (VS 2010)
BeitragVerfasst: Sa 23.06.12 16:20 
hey danke erstmal für den tipp.
hörte sich ja erstmal vielversprechend an.

Also hab ich mir das hier zusammengebastelt:
ausblenden C#-Quelltext
1:
2:
3:
4:
pServer.StartInfo.UseShellExecute = false;
pServer.StartInfo.FileName = @"C:\Users\Valentin\Desktop\hello_World.exe";
pServer.StartInfo.CreateNoWindow = true;
pServer.Start();


hello_world.exe hat diesen inhalt:
ausblenden C#-Quelltext
1:
2:
Console.WriteLine("Hello World!");
Console.ReadLine();


Nunja aber anstatt das das Fenster von meinem Projekt die Ausgabe "Hello World!" anzeigt ersheint nur ein blinkender Curser... Der Prozess "Hello_World.exe" wird laut Taskmanager gestartet.

Also das ist ja nicht wirklich das was ich erreichen wollte.

ne Lösung? :)
halliba Threadstarter
Hält's aus hier
Beiträge: 8

Win 7
C# (VS 2010)
BeitragVerfasst: Sa 23.06.12 21:27 
hat sich erledigt.
hab ein bisschen gegooglet und so läufts ohne probleme:
ausblenden C#-Quelltext
1:
2:
3:
            ProcessStartInfo info = new ProcessStartInfo(@"C:\Program Files\Java\jre7\bin\java.exe"@"-Xincgc -Xmx1G -jar C:\bukkit\server_09\craftbukkit-1.2.5-R4.0.jar");
            info.UseShellExecute = false;
            Process processChild = Process.Start(info);


danke an TH69 :)
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 24.06.12 08:42 
Hallo,

und das läuft jetzt auch ohne ProcessStartInfo.CreateNoWindow auf true zu setzen? Dann bin ich zwar verwundert, aber schön, daß du selber die Lösung gefunden hast (also scheint es dann alleine am UseShellExecute = false zu liegen).