Versionsnummer des Grafiktreibers ermitteln
Grüße!
Ich bin noch relativ unerfahren mit Delphi (würde mich als Noob bezeichnen). Nun sitz ich vor der Aufgabe, die Versionsnummer oder das Treiberdatum der Grafikkarte zu ermitteln. Erstmal davon ausgegangen, dass nur eine Grafikkarte verbaut ist. An die Informationen der GraKa selber komm ich über die Registry schon ran, nur seh ich da nichts, was den Treiber direkt betreffen würde. Weiß zufällig jemand, wie ich an die Versionsnummer oder das Treiberdatum rankomme? |
AW: Versionsnummer des Grafiktreibers ermitteln
Hallo und Willkommen in der DP :dp:,
Du könntest es mittels WMI versuchen (ich habe hier den WMI Delphi Code Creator, URL siehe Kommentar, verwendet):
Delphi-Quellcode:
//-----------------------------------------------------------------------------------------------------
// This code was generated by the Wmi Delphi Code Creator (WDCC) Version 1.7.7.1 // http://code.google.com/p/wmi-delphi-code-creator/ // Blog http://theroadtodelphi.wordpress.com/wmi-delphi-code-creator/ // Author Rodrigo Ruz V. (RRUZ) Copyright (C) 2011-2012 //----------------------------------------------------------------------------------------------------- // // LIABILITY DISCLAIMER // THIS GENERATED CODE IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. // YOU USE IT AT YOUR OWN RISK. THE AUTHOR NOT WILL BE LIABLE FOR DATA LOSS, // DAMAGES AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS CODE. // //---------------------------------------------------------------------------------------------------- program GetWMI_Info; {$APPTYPE CONSOLE} uses SysUtils, ActiveX, ComObj, Variants; // Die Klasse "Win32_VideoController" stellt die Funktionen und Verwaltung des Videocontrollers in einem Win32-Computersystem dar. // Beispiel: Videoadapterhersteller, Chipversion, Bildschirmauflösung und Anzahl der Farben. procedure GetWin32_VideoControllerInfo; const WbemUser =''; WbemPassword =''; WbemComputer ='localhost'; wbemFlagForwardOnly = $00000020; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_VideoController','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin Writeln(Format('DriverDate %s',[String(FWbemObject.DriverDate)]));// Array of Datetime Writeln(Format('DriverVersion %s',[String(FWbemObject.DriverVersion)]));// String Writeln(''); FWbemObject:=Unassigned; end; end; begin try CoInitialize(nil); try GetWin32_VideoControllerInfo; finally CoUninitialize; end; except on E:EOleException do Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode])); on E:Exception do Writeln(E.Classname, ':', E.Message); end; Writeln('Press Enter to exit'); Readln; end. |
AW: Versionsnummer des Grafiktreibers ermitteln
Erstmal danke DaddyH.
Ich werd mir deinen Code durchlesen, durchkommentieren und anpassen, was ich brauche. So lern ich am besten. Ich hab mich viel zu lang mit Lisp rumgeschlagen und mein Delphi-Wissen versteckt sich mittlerweile ein wenig. ;3 |
AW: Versionsnummer des Grafiktreibers ermitteln
Das ist gar nicht mein Code ;) : http://theroadtodelphi.wordpress.com...-code-creator/
|
AW: Versionsnummer des Grafiktreibers ermitteln
Zumindest hast du's mir zugeschickt und sicher auch irgendwo auf generieren gedrückt.
Der Tag, an dem Programme vollkommen selbstständig nicht vorgefertigte Situationen analysieren und Probleme lösen, ist der Tag an dem ich mich Gegen die Matrix, die Zylonen oder für den Butlers-Djihad bewaffne. (Je nachdem, auf welche Romanreihe, Serie oder Filme man steht) |
AW: Versionsnummer des Grafiktreibers ermitteln
Die Lösung mittels WMI wurde als zu langsam abgeschmettert.
Ich habe den Editor in Chief von Techpowerup angeschrieben, ob er mir ne Richtung verraten könnte, wie das in GPU-Z gemacht wurde und er riet mir (Zitat) "das über SetupDi. Registry key (SPDRP_DRIVER) holen und dort DriverDateData und DriverVersion zu lesen." Nun habe ich nicht viel Erfahrung, aber Google. So stieß ich dann hierauf: usb-stick seriennummer produktname auslesen Nun liest das alle möglichen Informationen aus nur... ^^' Ich verstehs nicht. Also googlen, was die Funktionen machen kann ich ja, find auch einiges im Windows Dev Center, nur krieg ich das Gesamtbild nicht in meinen Verstand, bzw. welche stellen ich ändern muss, statt der Properties von USB-Geräten sauber nach denen von Grafikkarten zu fischen. Würd ich dahin kommen, könnt ich mir sicher etwas einfallen lassen, die Richtige Property für die Treiberversionsnummer rauszufiltern. Sorry DaddyH! |
AW: Versionsnummer des Grafiktreibers ermitteln
Zitat:
(Vor allem frage ich mich warum, wird der Code etwa mehrfach ausgeführt statt das Ergebnis zwischenzuspeichern?) |
AW: Versionsnummer des Grafiktreibers ermitteln
@ jaenicke:
Letzten Endes arbeite ich als Azubi nach Arbeitsanweisung und Auftrag. Wenn die Ansage kommt, "Mach das bitte anders." dann mach ich das auch anders. Nun hab ich ne Lösung direkt über die Registry gefunden und muss schauen, ob die so angenommen wird. Trotzdem danke an alle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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