Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26915, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3326, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 312, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7643, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 23, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 58, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 146, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 71, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50944, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19.06.2009, 16:47   #1 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Frage Prüfen, ob diese API existiert?

Vielleicht hat ja jemand eine Lösung parat...

Ich suche nach einer Programm-Möglichkeit zu ermitteln, ob eine bestimmte System-Dll-Funktion auf dem eingesetzten System vorhanden ist oder nicht. Das Programm kennt allerdings nur den Namen der Funktion, nicht den Namen der Dll, in der sich die Funktion befinden könnte, darum scheidet GetProcAddress() leider schonmal aus. Auch sowas wie IsBadCodePtr() dürfte nicht funktionieren.
Hat jemand sowas schonmal probiert?
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 19.06.2009, 17:03   #2 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Ob eine API von einem Process gerade verwendet werden kann, kannst du feststellen, das ist kein Problem. Ob diese API auf dem System vorhanden ist...
Du müsstest dazu nacheinander alle DLLs laden, die irgendwo auf dem OS als Datei zu finden sind - wie willst du das machen?
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 19.06.2009, 17:06   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
Ob diese API auf dem System vorhanden ist...
Du müsstest dazu nacheinander alle DLLs laden, die irgendwo auf dem OS als Datei zu finden sind - wie willst du das machen?
Hehe, genau das ist wohl die Frage...

Zitat:
Ob eine API von einem Process gerade verwendet werden kann, kannst du feststellen, das ist kein Problem.
Vielleicht reicht das ja schon... Wie würdest du da vorgehen?
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 19.06.2009, 17:11   #4 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Hehe, genau das ist wohl die Frage...



Vielleicht reicht das ja schon... Wie würdest du da vorgehen?
Ich denke mal, die Links reichen dir:
Toolhelp
modBaseAddr = Handle der DLL
GetProcAddress
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 19.06.2009, 17:19   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Ah, du meinst die modBaseAddr aller vorhandenen Module mit dem Funktionsnamen testen.... Hoffentlich bekomme ich das so hin und es arbeitet auch noch schnell genug.
Danke, das werde ich Sonntag mal testen. Jetzt gehts erstmal zur Betriebsfeier.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 19.06.2009, 17:29   #6 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Das geht schneller:
EnumProcessModules
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 19.06.2009, 18:47   #7 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Hier Code:
Code:
Def GetCurrentProcess(0) !"Kernel32","GetCurrentProcess"
Def GetProcAddress(2) !"Kernel32","GetProcAddress"
Def EnumProcessModules7(4) !"Kernel32","EnumProcessModules"
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) 
PSAPI&=UseDll($Syspath+"\PSAPI.DLL")
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
Freedll PSAPI&
End
Proc Funktion_vorhanden
 Parameters FunktionsName$
 Declare RetText$, Counter&
 RetText$="Die API '"+FunktionsName$+"' wurde nicht gefunden!                    "
 Counter&=0
 DIM ModuleHandles#,4
 IF Winver!<7.0
  EnumProcessModules(GetCurrentProcess(),ModuleHandles#,4,addr(Needed&))
 else
  EnumProcessModules7(GetCurrentProcess(),ModuleHandles#,4,addr(Needed&))
 endif
 Dispose ModuleHandles#
 DIM ModuleHandles#,Needed&+40
 IF Winver!<7.0
  EnumProcessModules(GetCurrentProcess(),ModuleHandles#,SizeOf(ModuleHandles#),addr(Needed&))
 else
  EnumProcessModules7(GetCurrentProcess(),ModuleHandles#,SizeOf(ModuleHandles#),addr(Needed&))
 endif
 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
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT

Geändert von AHT (23.06.2009 um 17:52 Uhr)
AHT ist offline   Mit Zitat antworten
Alt 20.06.2009, 11:31   #8 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Danke für den Code, funktioniert fast perfekt. Das Proggie stürzt aber zum Programmende immer ab, wenn man das Hauptfenster nicht explizit zerstört. Das hilft, warum auch immer...:

Code:
DestroyWindow(%hwnd)
Freedll PSAPI&
End
Die API EnumProcessModules wurde ins Kernel ausgelagert?
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 20.06.2009, 12:17   #9 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Danke für den Code, funktioniert fast perfekt. Das Proggie stürzt aber zum Programmende immer ab, wenn man das Hauptfenster nicht explizit zerstört. Das hilft, warum auch immer...:
Bei mir mit XProfan9 nicht. Problem in XProfan11?
Zitat:
Zitat von Frabbing Beitrag anzeigen
Die API EnumProcessModules wurde ins Kernel ausgelagert?
Scheinbar unter Windows7 - mal Code von Horst testen lassen.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 20.06.2009, 17:42   #10 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Standard 5

Habe den Fehler hier auch .
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 20.06.2009, 20:18   #11 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Habe den Code gerade nochmal mit der Freeware von XProfan10 getestet - auch da läuft alles ohne Probleme (Windows2000).
Vielleicht Fehler in XProfan11???
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 20.06.2009, 20:41   #12 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von AHT Beitrag anzeigen
Habe den Code gerade nochmal mit der Freeware von XProfan10 getestet - auch da läuft alles ohne Probleme (Windows2000).
Vielleicht Fehler in XProfan11???
Nein, läuft hier ohne Probleme ! Vista und Xprofan11.2
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 20.06.2009, 21:29   #13 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Hab den Code mal weiter zurückgenommen. Hierbei bekomme ich immer noch nach dem Programmende die Windowsmeldung: XProfan-Interpreter hat ein Problem festgestellt...:

Code:
Cls
Var psapi&=UseDll($Syspath+"\\PSAPI.DLL")
Usermessages $10
WaitInput
UserMessages 0
Freedll psapi&
End
Als Exe funktioniert es reibungsfrei.
Nehme ich die UserMessage-Zeile(n) oder aber auch die UseDll-Zeile raus, kommt die Meldung nicht.

EDIT: Getestet mit 11.2a
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (20.06.2009 um 21:33 Uhr)
Frabbing ist offline   Mit Zitat antworten
Alt 20.06.2009, 21:40   #14 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Läuft hier ohne Probleme im Interpreter oder kompiliert.

Vista und XP & XProfan 11.2a.
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher

Geändert von Andreas Miethe (20.06.2009 um 21:48 Uhr)
Andreas Miethe ist offline   Mit Zitat antworten
Alt 20.06.2009, 21:48   #15 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Hat das
Code:
End
irgentwelche Auswirkungen? Nimm das mal raus.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
System32 Ordner existiert nicht Xerus Windows XP 14 16.11.2005 16:42
Etwas löschen was nicht mehr existiert? gast2 Windows 95/98/ME/2000/NT 4 22.06.2004 08:39
PCI-Karte, die nicht existiert total_anonym Hardware - Problemlösungen 3 17.12.2002 20:06



Alle Zeitangaben in WEZ +2. Es ist jetzt 06:02 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2