AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Fehlerauswertung rundll32.exe + Parameter
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlerauswertung rundll32.exe + Parameter

Ein Thema von haentschman · begonnen am 30. Okt 2015 · letzter Beitrag vom 3. Nov 2015
Antwort Antwort
Benutzerbild von haentschman
haentschman

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

Fehlerauswertung rundll32.exe + Parameter

  Alt 30. Okt 2015, 10: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 10:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 2. Nov 2015, 11:17
Moin...

Problem noch nicht gelöst.. schieb.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 2. Nov 2015, 11:25
Ich hab mal nach SetupAPI gegoogelt und dabei das gefunden. Das enthält Funktionen mit Rückgabewert, die sich ohne RunDll aufrufen lassen. Sehe ich das was falsch?
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 2. Nov 2015, 11:46
Danke für die Antwort.

Ich habe den Code nur übernommen mit der rundll32.exe und der SetupAPI.dll als Parameter. Du hast mich aber auf eine Idee gebracht. Könnte ich die SetupAPI DLL selbst laden und die DiInstallDriver function selbst aufrufen?

Der Parameter der aktuellen runDLL32.exe:
Code:
SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 D:\blubb\bla.inf'
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 2. Nov 2015, 11:59
Danke für die Antwort.

Ich habe den Code nur übernommen mit der rundll32.exe und der SetupAPI.dll als Parameter. Du hast mich aber auf eine Idee gebracht. Könnte ich die SetupAPI DLL selbst laden und die DiInstallDriver function selbst aufrufen?

Der Parameter der aktuellen runDLL32.exe:
Code:
SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 D:\blubb\bla.inf'
In der MSDN ist die Routine unter "Public Device Installation Functions" einsortiert. Das heißt für mich: Probier's mal aus.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 2. Nov 2015, 12:26
Hmmm... Die setupAPI.dll hat die function aber nicht unter Exports...

PS: auch unter "D" nicht.
Miniaturansicht angehängter Grafiken
dll.png  
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#7

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 2. Nov 2015, 13:00
Falls du diese DiInstallDriver Funktion meinst, dann sollte Newdev.dll weiterhelfen. Die Funktion gibt's aber erst ab Vista (die DLL offenbar schon seit Win2k).

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 2. Nov 2015, 18:14
Hallo Dalei,

auch diese DLL hat nicht DiInstallDriver... Dafür aber DiInstallDriverA und W. Zumindest bekomme ich einen Pointer auf die Funktion. Weiter bin ich noch nicht gekommen. Melde mich dann morgen wieder.

PS: Wo findet man solche Info´s im MSDN? Wo kann ma die Details nachlesen?
[Edit] Man sollte auch mal bis nach unten blättern.
[Edit2] Ha... unter DiInstallDevice ist die DLL unter Requirements gelistet, unter DiInstallDriver nicht. Supi...

Danke...

Geändert von haentschman ( 2. Nov 2015 um 18:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Fehlerauswertung rundll32.exe + Parameter

  Alt 3. Nov 2015, 17:55
Sooo ihr lieben Liebenden...

Danke an alle. Es funktioniert.

Prinzipiell hätte es sogar auf Anhieb funktioniert wenn mir mein lieber Kollege nicht die verkehrte INF untergejubelt hätte... und ich probiere mir einen Wolf.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz