Exitcode einer externen Exe abfragen

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Exitcode einer externen Exe abfragen

Beitrag 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.
Antworten