Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi uallCollection und shell32.dll (https://www.delphipraxis.net/63212-uallcollection-und-shell32-dll.html)

Scorpion3000 15. Feb 2006 14:27


uallCollection und shell32.dll
 
Hallo Leute!

Ich hab mir die uallCollection mal runtergeladen. Ich möchte die ShellExecute funktion gerne hooken. Leider liefert mir die GetModuleHandle('shell32.dll') immer null zurück bzw dann GetLastError = 126. Wenn ich die Dll über LoadLibrary lade und dann
an HookCode übergebe ändert sich nichts. Ich kann weiterhin ShellExecute aufrufen

Delphi-Quellcode:
   h3:= GetModuleHandle('shell32.dll');
   if h3 = 0 then
      h3:= LoadLibrary('shell32.dll');
   if h3 > 0 then begin
      //ShellExecuteA
      @old_ShellExecuteA:= GetProcAddress(h3, 'ShellExecuteA');
      if @old_ShellExecuteA <> nil then begin
         if not uallHook.HookCode(@old_ShellExecuteA, @My_ShellExecuteA, @Next_ShellExecuteA) then
            ShowMessage('ShellExecuteA Error '+inttostr(GetLastError));
      end
      else
        ShowMessage('ShellExecuteA: error prt = nil');
      //ShellExecuteW
      @old_ShellExecuteW:= GetProcAddress(h3, 'ShellExecuteW');
      if @old_ShellExecuteW <> nil then begin
         if not uallHook.HookCode(@old_ShellExecuteW, @My_ShellExecuteW, @Next_ShellExecuteW) then
            ShowMessage('ShellExecuteW Error');
      end
      else
        ShowMessage('ShellExecuteW: error prt = nil '+inttostr(GetLastError));
   end
   else
      ShowMessage('"Shell32.dll" error h3 <= 0 '+inttostr(GetLastError));

Christian Seehase 15. Feb 2006 20:33

Re: uallCollection und shell32.dll
 
Moin Scorpion,

statt Deines IntToStr(GetLastError) solltest Du es mal mit SysErrorMessage(GetLastError) versuchen.

126 => "Das angegebene Modul wurde nicht gefunden"

Scorpion3000 16. Feb 2006 11:23

Re: uallCollection und shell32.dll
 
Danke Christian Seehase!

Wofür der Fehlercode steht ist mir bekannt.
Kleine Anmerkung: Dieser Quelltext dient ausschließlich zum Testen. Dh. solche Schönheitssachen ab ich nicht beachtet!

Mfg Scorpion3000


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 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