![]() |
Dynamische Verwendung von RegisterServiceProcess funzt nicht
Hallo Freunde :hi: ,
ich habe folgendes geschrieben, um die kernel32.dll dynamisch zu laden, aber es klappt etwas nicht mit der verwendung von RegisterServiceProcess:
Delphi-Quellcode:
Es kommt aber immer "Verstecken fehlgeschlagen", kann mir jemand erklären, weshalb?var DLLHandle : THandle; Form1.create(...); begin //Taskmanager if Win32Platform = 1 then try DLLHandle := LoadLibrary('C:\Windows\System\kernel32.dll'); if DLLHandle <> 0 then begin @RSP_Procedure := GetProcAddress(DLLHandle, 'RegisterServiceProcess'); if Assigned(RSP_Procedure) then begin if RSP_Procedure(GetCurrentProcessID, 1) = 1 then showmessage('Erfolgreich versteckt') else showmessage('Verstecken fehlgeschlagen'); end; end; FreeLibrary(DLLHandle); except end; end; Ich prüfe ja extra, ob RSP_Procedure auch assigned ist, also findet er RegisterServiceProcess schon; da kann der Fehler nicht liegen. MfG Lefko |
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
Was gibt denn RSP_Procedure zurück? Weis das mal einer einzelnen Variable zu und kuck dir den Wert mal an. Dann wäre noch interessant, was RaiselastOSError() anzeigt. Und unter Win9x arbeitest du oder?
|
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
Der Wert von RSP_Procedure ist 0 und RaiseLastOSError hat die message 'A call to an OS function failed'.
Wie kommt das? ich hab WinME, da klappt die verwendung von RegisterServiceProcess sonst gut... MfG Lefko |
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
Moin Lefko,
wie hast Du denn RSP_Procedure deklariert? Hast Du daran gedacht stdcall als Aufrufkonvention anzugeben? |
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
Zitat:
Delphi-Quellcode:
type DLLProcedure = function(ProcessID, OnOff : DWord) : DWord; stdcall;
var RSP_Procedure : DLLProcedure = nil; Zitat:
ich prüfs nochmal mit stdcall (hab ich ja jetzt dazu geschrieben). MfG Lefko. EDIT: Ja, das war wohl der Fehler, jetzt klappt es wunderbar :) PS: Was ist denn der Unterschied eigentlich zwischen z.B. DWord und integer? hatte nämlich result als integer deklariert, vielleicht lag s auch daran...? weil da nur 0 oder 1 als result kommt, nahm ich integer, aber es muss dword sein |
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
![]() Zitat:
Code:
http://www.delphipraxis.net/images/common/divider.jpg
Integer -2147483648..2147483647 32 Bit, mit Vorzeichen
Word 0..65535 16 Bit, ohne Vorzeichen Longword 0..4294967295 32 Bit, ohne Vorzeichen ![]() ![]() ![]() |
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
Danke Himitsu :)
MfG Lefko |
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
Darf ich vorschlagen, dass du anstelle der Eins
Zitat:
|
Re: Dynamische Verwendung von RegisterServiceProcess funzt n
Darfst du! :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz