ShellExecuteEx Problem
-
Hallo Leute,
ich habe ein Problem mit der ShellExecuteEx, denn ich bringe sie einfach nicht zum Laufen.
Mit der ShellExecute funktioniert der Aufruf ohne Probleme.Wie Bringe ich die ShellExecuteEx Funktion zum laufen? Ich brauche sie denn diese Funktion liefert den „hProcess“ (Prosess Handle), den ich brauche um die
::WaitForSingleObject (ShellInfo.hProcess, INFINITE); Funktion aufzurufenDas könnte ich zwar auch mit der CreateProcess Funktion machen, doch an die kann ich keine Parameter für das Programm das ich aufrufe übergeben (lpParameters).
Info:
BS: Windows XP
VC++.net Standard (MFC Anwendung Dialogbasierend)
Die notpad.exe habe ich zur Vereinfachung direkt auf C: kopiert.Inkludierte Header:
#include "Winuser.h"
#include "Windows.h"
#include "shellapi.h"
#include "winbase.h"void CProzessDlg::OnBnClickedButton1() { ::SHELLEXECUTEINFO ShellInfo = {0}; //Übersicht beim Einzelschritt Debuggen ShellInfo.cbSize; ShellInfo.dwHotKey; ShellInfo.fMask; ShellInfo.hIcon; ShellInfo.hInstApp; ShellInfo.hkeyClass; ShellInfo.hMonitor; ShellInfo.hProcess; ShellInfo.hwnd; ShellInfo.lpClass; ShellInfo.lpIDList; //Initialisierung ShellInfo.lpDirectory = NULL; ShellInfo.lpFile = "C:\\notepad.exe"; ShellInfo.lpParameters = NULL; ShellInfo.lpVerb = "open"; ShellInfo.nShow = SW_SHOW; BOOL MyError = ::ShellExecuteEx(&ShellInfo); // funzt net :( //MyError = 0 (Faild) DWORD MyError2 = ::GetLastError(); //MyError2 = 5 (Access is denied.) //oder SE_ERR_ACCESSDENIED = The operating system denied access to the specified file. //------------------------------------------------------------------------- //Dieser Code Funktioniert warum ist dann oben MyError2 = 5 (Access is denied.) //------------------------------------------------------------------------- //ShellExecute( //m_hWnd, //"open", //"C:\\notepad.exe", //NULL, //NULL, //SW_SHOW ); //------------------------------------------------------------------------- }Für jede Hilfe bin ich dankbar.
Dol
-
http://www.c-plusplus.net/forum/viewtopic.php?t=61546
Das mit den Parametern dürfte sich dann wohl erledigt haben
