![]() |
Betriebssystem: Win 2000,Win XP,Win Vista,Win 7
APIs prüfen, ob existet
Moin,
gibt es nicht zufällig ein Programm, das man über sein Programm laufen lassen könnte, welches sich anschaut welche APIs verwendet wurden und einem dann sagt
Hatte grade mal kurz das Application Compatibility Toolkit in den Pfoten, aber das sagte mir nur "ja, dein Programm lief hier (Server2008) gerade problemlos". Nja, bei uns hatte sich doch erstmal schnell gelöst, da es der letzte Win2000-Rechner war, wo sich der Kunde vorher sowieso schonmal Gedanken machte den abzuschaffen. :angle: Ich weiß nun dadurch praktisch schonmal von einer API, welche mindestens ein XP-SP1 benötigt. OK, die Variante mit den VMs bestünde noch, aber vielleicht geht's auch einfacher. |
AW: APIs prüfen, ob existet
Hallo,
da ich gerade an einer ähnlichen Baustelle unterwegs bin, habe ich mich mal ein bisserl um dieses Thema kümmern können, sollen, dürfen, müssen ;-) In der JEDI Code Library gibt es u. a. die Unit JCLPeImage. Diese enthält u. a. die Prozedur ![]() Dieser übergibt man den Name der EXE-Datei oder einer DLL, eine Stringliste, einen leeren Stringparameter und einen boolschen Wert mit True. Dafür erhält man in der Stringliste alle genutzten Aufrufe von Kernel32.dll und was es sonst noch so alles gibt bzw. genutzt wird. Die Stringliste enthält für jeden Aufruf eine Zeile in der Form DLL=aufgerufene Funktion. Wenn man nun hergeht und sich aus diesen Zeilen Aufrufe für die Suche in der MSDN macht, so kann man dort aus dem Suchergebnis jeweils den ersten gefundenen Eintrag (= 1. Link) wählen und erhält damit die Beschreibung zu der genutzten Funktion der entsprechenden DLL. Auf dieser Ergebnisseite findet man nun den Abschnitt Requirements. Dort ist detailiert aufgeführt, welche Systemvoraussetzungen für die Nutzung der Funktion erfüllt sein müssen. Der aus der Stringliste oben genannter Prozedur zu erstellende Link müsste (vermutlich) so aussehen:
Code:
Er ließe sich daher sehr leicht aus der Stringliste erstellen.
http://social.msdn.microsoft.com/Search/en-US?query=kernel32.dll%20gettickcount
Nun muss man die entsprechende Seite laden, die leider inhaltlich nicht so aufgebaut ist, dass ein Heraussuchen des gewünschten Links einfach erscheint. Vermutlich benötigt man den ersten Link, der in etwa folgendem Aufbau entspricht:
Code:
Beispiel:
http://msdn.microsoft.com/en-us/library/windows/desktop/*.aspx
Code:
Die nachfolgende Seite, die die gewünschten Informationen enthält, kann man jedoch relativ einfach parsen und bekommt so die gewünschten Informationen.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385449(v=vs.85).aspx
Um sich hieraus ein eigenes Nachschlagwerk zu bauen ist ein bisserl Phantasie und die eine oder andere Stunde Arbeit erforderlich. Sicherlich ist es aber einfacher, als jedes Betriebssystem (wie auch immer, VM...) vorzuhalten und die Programme dann zu testen, zumindest die Planung sollte vereinfacht werden können, um ggfls. auftretenden Problemen aus dem Weg gehen oder halt die Systemanforderungen besser beschreiben zu können. |
AW: APIs prüfen, ob existet
Am schönsten währe es ja, wenn es schon was Fertiges gegeben hätten :angle:
Hmmm, man könnte auch das Windows PSDK parsen, welches man sich runterladen kann. Ansonsten würde ich wohl noch eine Datenbank auf meinem Webseitchen bereitstellen, damit nicht jedes Mal die Webseite geparst werden muß. Klar, nur weil irgendwo alle gefundenen APIs vorhanden sind, heißt es noch lange nicht, daß das Programm dann dort auch wirklich läuft, aber nicht jeder hat alle Windowsversionen rumliegen und für einen ersten Überlick ist es eben idealer, vorallem eben die Anzahl und Art der APIs, welche man eventuell umgehen könnte, um es doch eventuell zum Laufen zu bringen. Vielleicht verrät uns Daniel ja, wie er in seine Delphi-Referenz den MSDN-Index reinbekommen hat? |
AW: APIs prüfen, ob existet
Ich verwende CFF Explorer.. Suche danach
|
AW: APIs prüfen, ob existet
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab da vor Ewigkeiten mal was geschrieben...
![]() ![]() Dank MSDN-Abo habe ich alle OS-Installations-CDs heruntergeladen, extrahiert, teilweise nochmal extrahiert, Testcode zum Analysieren der Exporte drüberlaufen lassen und diese Daten stecken hinter beiden Tools. Nachtrag: habe noch einen zweiten Screenshot ergänzt, mit der Übersichtsansicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 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