PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VS .NET 2003 Frage


Gast
2006-03-06, 10:29:20
Moin zusammen !

Mein Onkel hat mir sein VS ausgeliehen und ich bin grad dabei, mir mit dem C++ "Windows Forms" Designer eine Oberfläche zu basteln, von der aus ich durch drücken verschiedener Knöpfe die .exe Dateien verschiedener Programme (Winamp usw.) starten kann oder testweise erstmal ne simple text oder word Datei. Die Oberfläche und die Buttons hab ich bereits fertig, nun fehlt mir nur noch der Code zum Ausführen bzw. Aufrufen der .exe Dateien.
Ich hab mich schon halb tot-gegoogelt aber bin nicht wirklich schlauer geworden, nur von irgendner "shell" hab ich was gelesen.

Ich muss noch erwähnen, dass ich im Prinzip keinen Plan von C/C++ Programmierung habe, ich wollte einfach mal für mich etwas mit dem Visual Studio rumspielen.

Coda
2006-03-06, 10:53:53
Dann würde ich dir empfehlen das ganze lieber mit C# zu machen.

Falls du es mit C++ machen willst brauchst du CreateProcess aus der WinAPI.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp

Gast
2006-03-06, 11:02:18
Ich würde das ganze aber gerne in C++ lösen oder ist das wirklich so umständlich ?

Coda
2006-03-06, 11:07:55
Windows Forms gehen nur mit managed code und dafür ist C++ .NET nun wirklich nicht die beste Wahl, weil die Syntax absolut grausam ist. Mit C++/CLI in VC++ 2005 würde es noch halbwegs human gehen.

grakaman
2006-03-06, 11:15:21
Hier die .NET Process Klasse:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdiagnosticsprocessclassstarttopic.asp

Gast
2006-03-06, 11:33:37
Danke schön, das hat mir doch prompt weitergeholfen :)

Es ist total simpel, man kann einfach das hier einfügen:

Process::Start(S"firefox.exe"); und schon klappt's

Davor muss man noch

#using <mscorlib.dll>
#using <System.dll>

einbinden und

using namespace System::Diagnostics;

Ob man jetzt alle drei oder nur einzelne braucht weiß ich nicht, auf jedenfall geht's jetzt...

Gast
2006-03-07, 14:20:30
Hmm, jetzt steh ich vor nem neuen Problem. Firefox, Mediaplayer oder IExplorer lassen sich wunderbar damit starten.
Will ich jetzt aber andere Programme auf diese Weise starten (z.b. Blobby Volley :D oder so), kommt immer ne Fehlermeldung "Eine nicht behandelte Ausnahme des Typs 'System.ComponentModel.Win32Exception' ist in system.dll aufgetreten.
Zusätzliche Informationen: The system cannot find the file specified"

Hat jemand ne Idee ? :)

Gnafoo
2006-03-07, 15:01:05
Der Dateiname des Programmes, das du starten willst scheint nicht zu stimmen. Zumindest kann — wenn ich das hier richtig interpretiere — die Programmdatei nicht gefunden werden. Hast du eventuell ähnlich wie oben bei deinem Beispiel zum Firefox nur den Namen der exe-Datei angegeben, aber den entsprechenden Pfad nicht in der Path-Umgebungsvariablen? Dann solltest du es mal mit der vollständigen Pfadangabe der exe-Datei probieren.

Gast
2006-03-07, 15:29:36
Der Dateiname des Programmes, das du starten willst scheint nicht zu stimmen. Zumindest kann — wenn ich das hier richtig interpretiere — die Programmdatei nicht gefunden werden. Hast du eventuell ähnlich wie oben bei deinem Beispiel zum Firefox nur den Namen der exe-Datei angegeben, aber den entsprechenden Pfad nicht in der Path-Umgebungsvariablen? Dann solltest du es mal mit der vollständigen Pfadangabe der exe-Datei probieren.

Doch, den Pfad hab ich mit angegeben. Bei Firefox z.b. geht es sowohl mit als auch ohne Pfad.