Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.288 Beiträge
 
Delphi 12 Athens
 
#1

Fehlerauswertung rundll32.exe + Parameter

  Alt 30. Okt 2015, 09:44
Hallo alle...

SOLL:
Treiberinstallation über die SETUPAPI.DLL mit der rundll32.exe.

IST:
Da der Treiber nicht signiert ist schlägt die Installation unter W10 fehl. Meldung: "Installation fehlgeschlagen" als Message Dialog. Das soll auch so sein. Nur leider bekomme ich in meinem Tool den Fehler nicht mit. ExitCode vom CreateProcess ist in jedem Falle 0.

WUNSCH:
Einen Rückgabewert um Erfolgreich und Fehler trennen zu können.

Ich bitte um Ideen...

Code: die if begin/end/else stammen aus Versuchszwecken um herauszufinden wann was passiert.
Delphi-Quellcode:
if CreateProcess(NIL,
                 PChar(FPreferences.SystemPath + conRunDLLName + ' ' + Parameters),
                 NIL,
                 NIL,
                 False,
                 CREATE_NEW_PROCESS_GROUP or NORMAL_PRIORITY_CLASS,
                 NIL,
                 PChar(ExtractFilePath(FPreferences.SystemPath)),
                 SUInfo,
                 ProcInfo) then
begin
  try
    WaitForSingleObject(ProcInfo.hProcess, INFINITE);
    GetExitCodeProcess(ProcInfo.hProcess, DWord(ExCode));
    // hier die Prüfung auf ExCode
    Result := True;
  finally
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
  end;
  if Assigned(FOnInstallSuccess) then
  begin
    FOnInstallSuccess(Self);
  end;
end
else
begin
  if Assigned(FOnInstallError) then
  begin
    FOnInstallError(Self, 'Blubb');
  end;
end;

Geändert von haentschman (30. Okt 2015 um 09:48 Uhr)
  Mit Zitat antworten Zitat