_spawnlp(_P_NOWAIT, "%windir%\\notepad.exe", " ", NULL);
-
Hallo!
Gibt es eine Erklärung dafür, dass
Variante 1: _spawnlp(_P_NOWAIT, "%windir%\\notepad.exe", " ", NULL);
nicht funktioniert (es passiert nämlich nichts), während
Variante 2: _spawnlp(_P_NOWAIT, "C:\\Winnt\\notepad.exe", " ", NULL);
durchaus funktioniert?
Bin etwas ratlos.

-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ja. :p
Umgebungsvariablen wie %windir% werden eigentlich von fast keiner Funktion expandiert, das musst du selbst machen.
Ungetestet, als grobe Idee:
const char * cwindir = getenv("windir"); string windir = cwindir ? cwindir : ""; // oder anderer default-Pfad _spawnlp(_P_NOWAIT, (windir + "\\notepad.exe").c_str(), "", (char*)NULL);
-
Hallo! Danke für den Tipp. So hat's denn auch funktioniert (Anmerkung: ich benutze Qt, daher habe ich QString statt string verwendet):
const char * cwindir = getenv("windir");
QString windir = cwindir;
windir.append("\\notepad.exe");
_spawnlp(_P_NOWAIT, windir, " ", (char*)NULL);Ein Rätsel bleibt mir aber immer noch, dass das dritte Argument " " und nicht "" sein muss...
Auf jeden Fall aber vielen Dank, der Tipp hat mir sehr geholfen!
