| |
|
|
| Andreas Hötker, URL=paules-pc-forum.de/forum/712778-post45.html, ZEITPUNKT=29.06.2009
Hier mal ein korrigierter Quelltext - ich will hoffen, das der jetzt überall läuft... KompilierenMarkierenSeparierenDef GetCurrentProcess(0) !"Kernel32","GetCurrentProcess"
Def GetProcAddress(2) !"Kernel32","GetProcAddress"
Def EnumProcessModules7(4) !"Kernel32","K32EnumProcessModules"
Def EnumProcessModules(4) !"PSAPI","EnumProcessModules"
Declare Edit&, Text&, PSAPI&, Needed&, ModuleHandles#, Winver!, OldText$
Windowstyle 31+512
Windowtitle "Ist Funktion vorhanden?"
Window 0,0-640,440
Edit&=Control("Edit","ZwQuerySystemInformation",$40000000 | $10000000 | $1000 | $400000,20,40,(Width(%HWND)-100),30,%HWND,4113,%HINSTANCE)
Text&=Create("Text",%HWND,"",20,100,(Width(%HWND)-100),200)
Settext Text&,Funktion_vorhanden(GetText$(Edit&))
Winver!=Val($WinVer)
Usermessages $10
While %UMessage<>$10
Getmessage
IF OldText$<>GetText$(Edit&)
Settext Text&,Funktion_vorhanden(GetText$(Edit&))
OldText$=GetText$(Edit&)
endif
wend
End
Proc Funktion_vorhanden
Parameters FunktionsName$
Declare RetText$, Counter&
RetText$="Die API "+FunktionsName$+" wurde nicht gefunden! "
Counter&=0
DIM ModuleHandles#,4
EnumProcessModules(GetCurrentProcess(),ModuleHandles#,4,addr(Needed&))
Dispose ModuleHandles#
DIM ModuleHandles#,Needed&+40
EnumProcessModules(GetCurrentProcess(),ModuleHandles#,SizeOf(ModuleHandles#),addr(Needed&))
Repeat
IF GetProcAddress(Long(ModuleHandles#,counter&),addr(FunktionsName$))>0
RetText$="Die API "+FunktionsName$+" wurde gefunden! "
endif
Counter&=Counter&+4
Until Counter&=Needed&
Dispose ModuleHandles#
Return RetText$
endproc
|
|
|
| |
|
|