Probleme WinExec......
-
Hallo,
ich benutze die Funktion WinExec in einem Programm.
Wenn ich die WinExec z.B. so aufrufeWinExec("Testprog.exe", SW_SHOW);funktioniert es einwandfrei und das Programm wird gestartet.
Wenn ich die Funktion nun mit einem übergebenen Parameter aufrufe, in meinem Fall folgendes
CString strProgToRun;und die Endung ".exe" anhänge (in strProgToRun steht Testprog)
strProgToRun += ".exe";tut sich nichts.
Allerdings wenn ich den string in einer Messagebox anzeige oder im Debugger kontrolliere erscheint der Wert "Testprog.exe". Also funktioniert hat das mit dem anhängen der endung. aufruf sieht dann folgender massen aus.WinExec(strProgTpRun, SW_SHOW);aber nichts tut sich.
Hier im Forum hab ich nen tip gefunden:WinExec(LPCSTR(strProgToRun), SW_SHOW);Leider hilft mir das auch nicht weiter.
Muss ich bei der Anwendung von WinExec etwas besonders beachten?? Woran liegt das. Werde wohl zu ShellExecute() oder sowas wechseln, aber rein interessehalber würde ich schon gerne wissen warum es mit einer variable nicht geht!!!Gruss
--------
Nachtrag:
Habe es auch mit ShellExecute() ausprobiert. Selbe Problematik, mit angabe als "String" funktioniert es, mit Angabe der Variable tut sich nix.
Hier mal noch der Code:void CTest2Dlg::OnRunpgm() { UpdateData(TRUE); CString strPgmName; CString strToExecute; strPgmName = m_strProgToRun; strPgmName.MakeUpper(); if (strPgmName == "PAINT" || strPgmName == "EDITOR" || strPgmName == "SOLITÄR") { strToExecute = strPgmName; strToExecute += ".exe"; strToExecute.MakeLower(); //MessageBox(strToExecute); ShellExecute(NULL,"open",LPCSTR(strToExecute),0,0,SW_SHOW); //WinExec(LPCSTR(strToExecute), SW_SHOW); } else { MessageBox("ungültige Auswahl!","Fehler", MB_ICONERROR); } }Bin noch relativ unerfahren in sachen C++/MFC.......vielleicht nur ein Anfängerfehler.......
[ Dieser Beitrag wurde am 12.06.2003 um 11:13 Uhr von ShakerWD editiert. ]
-
moin,
ich weiss nicht welche windowsversion du hast, aber spätestens seit xp heisst
editor->notepad.exe
paint->mspaint.exeund bei solitär tut sich auch nichts
ansonsten seh ich aber keine fehler.makelower ist an dieser stelle übrigens überfüssig

-
Hmm klappts ?
[ Dieser Beitrag wurde am 12.06.2003 um 22:17 Uhr von 5kYw4lKeR editiert. ]
-
Des weiteren geben die Funktionen ShellExecute() und WinExec() sicherlich Werte zurück, die auf Erfolg oder Mißerfolg hinweisen...
Meist kann man dann mit GetLastError() nachsehen, WAS GENAU schief gegangen ist....