AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Versionsnummer des Grafiktreibers ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Versionsnummer des Grafiktreibers ermitteln

Ein Thema von S.Langhammer · begonnen am 29. Mai 2013 · letzter Beitrag vom 3. Jun 2013
Antwort Antwort
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#1

Versionsnummer des Grafiktreibers ermitteln

  Alt 29. Mai 2013, 14:55
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Versionsnummer des Grafiktreibers ermitteln

  Alt 29. Mai 2013, 15:17
Hallo und Willkommen in der 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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Versionsnummer des Grafiktreibers ermitteln

  Alt 29. Mai 2013, 16:35
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Versionsnummer des Grafiktreibers ermitteln

  Alt 29. Mai 2013, 16:39
Das ist gar nicht mein Code : http://theroadtodelphi.wordpress.com...-code-creator/
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Versionsnummer des Grafiktreibers ermitteln

  Alt 29. Mai 2013, 16:46
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)
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Versionsnummer des Grafiktreibers ermitteln

  Alt 31. Mai 2013, 14:06
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!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Versionsnummer des Grafiktreibers ermitteln

  Alt 31. Mai 2013, 22:20
Die Lösung mittels WMI wurde als zu langsam abgeschmettert.
Bei mir braucht der Code rund 10-15 Millisekunden... Wie schnell muss es denn sein?
(Vor allem frage ich mich warum, wird der Code etwa mehrfach ausgeführt statt das Ergebnis zwischenzuspeichern?)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Versionsnummer des Grafiktreibers ermitteln

  Alt 3. Jun 2013, 09:23
@ 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.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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