# WinExec



## paddymann (12. Mai 2005)

Ich weiss, dass der Befehl um ein externes Programm zu starten ungefähr so aussieht:

WinExec("[Programmname",SW_SHOW);

Aber wie muss ich die Funktion jetz noch implementieren oder besser gesagt wie kreig ich ein Programm mit dem Befahl ans laufen?


----------



## iLu_is_a_loser (12. Mai 2005)

wenn du visual c++ benutzt, mach ein win32 application project auf und lies dir das ma durch:
http://www.darkleo.com/darkleo/programmierung/DarkWinAPI/01_01.htm
scroll n bisschen runter! wenn du eine callbackfunktion brauchst solltest du ein win32 dll project erstellen!
zum ganz normalen aufrufen würd ich allerdings ShellExecute benutzen!
greetz


----------



## paddymann (12. Mai 2005)

Wie benutz ich denn dann ShellExecute?


----------



## Tobias K. (12. Mai 2005)

moin


Warum benutzt du nicht die Suchfunktion?
Du findest hier 100 Beispiele.

```
ShellExecute(NULL, "open", "xxx.exe", NULL, NULL, SW_SHOW);
```


mfg
umbrasaxum


----------



## Tobias K. (12. Mai 2005)

moin




> wenn du visual c++ benutzt, mach ein win32 application project auf und lies dir das ma durch:
> http://www.darkleo.com/darkleo/prog...inAPI/01_01.htm
> scroll n bisschen runter! wenn du eine callbackfunktion brauchst solltest du ein win32 dll project erstellen!
> zum ganz normalen aufrufen würd ich allerdings ShellExecute benutzen!
> greetz


Warum erzählst du ihm was von Callback Routinen und Dll Projekten, wenn er nur wissen möchte wie man WinExec aufruft?!
Und halte dich bitte an die Rechtschreibung.


mfg
umbrasaxum


----------



## iLu_is_a_loser (12. Mai 2005)

neu dabei? na dann viel glück in deiner programmierkarriere  
wenn du wissen willst was man mit funktionen anfangen kann, dann guck doch mal bei der msdn vorbei:
http://msdn.microsoft.com/library/d...rm/shell/reference/functions/shellexecute.asp

in einem consolenproject:
#include <windows.h>
int main()
{
ShellExecute(0,"open","IEXPLORE.EXE","www.tutorials.de",0,SW_SHOWMAXIMIZED);
return 0;
}


[edit]
grml! waren mal wieder 2 schneller wie ich.. ich entschuldige wegen meiner miserablen rechtschreibung! bei mir ist die capital und die umschalttasten im eimer 
ich versuch es..


----------



## paddymann (12. Mai 2005)

umbrasaxum hat gesagt.:
			
		

> Warum benutzt du nicht die Suchfunktion?
> Du findest hier 100 Beispiele.



Ich hab die Suchfunktion benutzt aber da finde ich immer nur das:

```
ShellExecute(NULL, "open", "xxx.exe", NULL, NULL, SW_SHOW);
```


Und da ich noch jung und unerfahren bin weiss ich nie wie ich das in den Quellcode bringen soll...
Der loser hats mir aber schon gezeigt.


----------



## Tobias K. (12. Mai 2005)

moin


:suspekt:
Tja einfach reinschreiben.


mfg
umbrasaxum


----------



## paddymann (12. Mai 2005)

Kann ich mit ShellExecute auch Programme öffnen die nicht in dem selben Ordner sind wie mein exe-Datei? Muss ich da den Pfad angeben oder wie mach ich das?


----------



## Tobias K. (12. Mai 2005)

moin


Jein.
Du kannst sie mit dem absoluten Pfad aufrufen, die Programme die du z.B. Start->Ausführen aufrufen kannst, kannst du auch ohne Pfadangabe aufrufen.


mfg
umbrasaxum


----------



## paddymann (12. Mai 2005)

Was meinst du mit absolutem Pfad?


----------



## Tobias K. (12. Mai 2005)

moin


Absoluter Pfad: c:\programme\maxon\programm.exe
Relativer Pfad: \verzeichnis\programm.exe


mfg
umbrasaxum


----------



## paddymann (13. Mai 2005)

Bei mir klappt das mit der Pfadangabe nur solange ich keinen Ordner in dme Pfad angebe.
Also c:\Programm.exe funktioniert aber c:\ordner\Programm.exe nicht. Woran liegt das?


----------



## paddymann (13. Mai 2005)

Nochmal nach oben schieb...


----------



## Endurion (14. Mai 2005)

Wenn du den Pfad direkt einsetzt, musst du die Backslashes doppelt nehmen:

ShellExecute( NULL, "open", "c:\\programme\\hurz.exe", NULL, NULL, SW_SHOW );

Hintergrund: Innerhalb von Texten wird der Backslash als Sonderzeichen behandelt, und wandelt den Backslash und das nächste Zeichen in ein nicht eingebbares Zeichen um (zum Beispiel \n wird zu einen CR, \" wird ein Anführungszeichen)


----------

