shellexecuteex, shellexecute
-
schaffe es leider nicht mit shellexecuteex oder shellexecute den internetexplorer zu öffnen. wisst ihr wo der fehler sein könnte?
SHELLEXECUTEINFO ShellInfo = {0}; ShellInfo.cbSize = sizeof(ShellInfo); ShellInfo.hwnd = NULL; ShellInfo.lpVerb = (LPCTSTR) "open"; ShellInfo.lpFile = (LPCTSTR) "iexplorer.exe"; ShellInfo.nShow = SW_SHOWNORMAL; ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS; ShellExecuteEx(&ShellInfo);
oder
ShellExecute(0,"open","iexplorer.exe","","", SW_SHOW );
bei shellexecute bekomme ich folgende fehlermeldung
Konvertierung des Parameter 2 von 'const char[5]' in 'LPCWSTR' nicht möglich
-
Das LPCWSTR in der Meldung hört sich nach einem UNICODE-Kompilat an. Dann wird das Problem in beiden Fällen sein, dass Du einen ANSI-String (char-Array) als UNICODE-String (wchar_t-Array) interpretieren lässt und den dann an die Systemfunktion übergeben willst. Für die steht dann natürlich Schrott an den Stellen.
Der Grund für die Fehlermeldung im zweiten Fall ist übrigens, dass Du im ersten Fall dem Compiler durch die beiden Casts noch explizit sagst "mir ist egal was Du meinst, ich meine, Du hast das hier als UNICODE zu interpretieren". (Warum?)
Gib die Literale in beiden Fällen als L"TEXT" oder _T("TEXT") an, und lass die Casts weg, dann sollte es funzen.
BTW: Das gehört ins WinAPI-Forum.
-
danke für deinen beitrag!
habe endlich shellexecuteex zum laufen gebracht (allerdings mit notepad^^ als parameter anstatt iexplorer.exe)
-
javax schrieb:
danke für deinen beitrag!
habe endlich shellexecuteex zum laufen gebracht (allerdings mit notepad^^ als parameter anstatt iexplorer.exe)
Heißt das nicht eigentlich "iexplore.exe" ? Dann sollte das auch gehen...
-
Möchtest du wirklich nur den Internet-Explorer öffnen? Normalerweise möchte man doch gleich zu einer Adresse gehen, denn das geht mit ShellExecute auch. Dann öffnet sich nämlich auch gleich der Default-Browser, falls jemand einen anderen verwendet als den IE.
ShellExecuteA(0, "open", "http://www.c-plusplus.net/forum/", "", "", SW_SHOW);
Grüssli
-
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.
-
einen process mit shellexecuteex zu starten schaffe ich schon seit einiger zeit.
nun habe ich ein neues problem.
wie kann ich den prozess wieder zerstören?habe den prozess mit folgendem code gestartet
SHELLEXECUTEINFO ShellInfo = {0}; memset(&ShellInfo, 0, sizeof(ShellInfo)); ShellInfo.cbSize = sizeof(ShellInfo); ShellInfo.hwnd = NULL; ShellInfo.lpVerb = _T("open"); ShellInfo.lpFile = //FileName CString t; t.Format(_T("%d"), i); ShellInfo.lpParameters = t; ShellInfo.nShow = SW_SHOWNORMAL; ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS; bool exec = ShellExecuteEx(&ShellInfo);
-
Hallo,
z.B. so wie hier http://www.c-plusplus.net/forum/viewtopic-var-t-is-216016.html
MfG,
Probe-Nutzer