Seite 1 von 1

Exitcode einer externen Exe abfragen

Verfasst: 31.03.2011, 20:09
von RazorX
Nabend,

ich starte mit ShellExecuteEx eine von mir programmierte MFC Applikation und gebe 1 zurück wenn weiter gemacht werden soll, 0 wenn abgebrochen werden soll. Nun habe ich aber das Problem das GetExitCodeProcess mir immer eine 0 ausgibt auch wenn der Rückgabewert 1 ist. Ich habe in der MSDN gelesen das man ein Zugriffsrecht für sowas setzen muss jedoch hab ich das bis jetzt nur für OpenProcess, bzw CreateProcess gesehen. Gibts eine Möglichkeit die Rechte während der Laufzeit zu ändern?

Hier einmal der Code soweit:

Code: Alles auswählen

// Config aufrufen
SHELLEXECUTEINFO info;
ZeroMemory(&info, sizeof(info));
info.cbSize = sizeof(info);
info.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_DDEWAIT | PROCESS_QUERY_INFORMATION;
info.hwnd = 0;
info.lpVerb = L"open";
info.lpFile = L"YAGEConfig.exe";
info.lpParameters = L"YAGEConfig.exe";
info.nShow = SW_SHOWNORMAL;
if(ShellExecuteEx(&info))
{	
  while(WaitForSingleObject(info.hProcess, INFINITE) != WAIT_OBJECT_0){}
  DWORD retCode;
  if(GetExitCodeProcess(info.hProcess, &retCode))
    if(retCode == 0)
      return 0;
}
else
{ 
  return 0;
}
Mit freundlichen Grüßen

Edit: Hat sich im Prinzip erledigt. Der Code funktioniert, jedoch nicht wenn ich die Exe in MSVC starte und diese den Parentprozess verwaltet.