Problem bei ShellExecuteEx
-
Hallo zusammen
ich habe mir hier eine neue Struktur vom Typ LPSHELLEXECUTEINFO angelegt, womit ich später eine bat Datei ausführen möchte. Den Typen habe ich deswegen genommen, weil ich dort auf einen Rückgabewert abfragen kann.
Problem ist, dass er mal gar nichts macht, auch diesen code, den ich gleich poste, nicht.
this->shellTest=(SHELLEXECUTEINFO*)malloc( sizeof(SHELLEXECUTEINFO) ); this->shellTest->cbSize = sizeof(this->shellTest); this->shellTest->fMask = SEE_MASK_NOCLOSEPROCESS; this->shellTest->hwnd = GetActiveWindow(); this->shellTest->lpVerb = "open"; this->shellTest->lpFile = "cmd.exe"; this->shellTest->lpDirectory = "C:\\Windows\\System32\\"; //this->shellTest->hInstApp = test; this->shellTest->nShow = SW_SHOWNORMAL; if (! ShellExecuteEx(this->shellTest) ) { MessageBox(NULL,"Keine Lust",NULL,MB_OK); }Ich hab keine ahnung, woran es liegt und warum er das nicht macht
-
Warum benutzt du nicht eine lokale Variable vom Typ SHELLEXECUTEINFO, anstatt dynamisch Speicher zu allokieren?
Überleg dir mal, welchen Wert "sizeof(this->shellTest)" bei deinem Code hat?
-
weil wenn ich den habe, ich nicht mehr ShellExecuteEx arbeiten kann
-
MSS-Software schrieb:
weil wenn ich den habe, ich nicht mehr ShellExecuteEx arbeiten kann
...und warum solltest Du damit nicht arbeiten können?
Änder die Zeile 2 in:
this->shellTest->cbSize = sizeof(SHELLEXECUTEINFO);
-
ja, das hatte ich ja vorher auch so, problem ist aber, dass
ShellExecuteEx
als Übergabeparameter eine Struktur von LPSHELLEXECUTEINFO
haben möchte.
der compiler wollte des nicht
