Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wie die verwendete Grafikkarte ermitteln ? (https://www.delphipraxis.net/38792-wie-die-verwendete-grafikkarte-ermitteln.html)

kalmi01 24. Jan 2005 08:45


Wie die verwendete Grafikkarte ermitteln ?
 
Hallo,

vielleicht kann mir jemand einen Tip geben.

Die Aufgabenstellung: ermitteln der derzeit aktiven Grafikkarte (Intel/ATI/nVidia,..)

Das Problem: Auf dem Rechner wurden mehrere Grafikkarten installiert.
Eine On-Board-Grafik ist noch vorhanden, aber deaktiviert.
Eine ATI-Karte war ebenfalls mal installiert, dito eine nVidia.

D.h. in der Registry finde ich von allen 3 Grafikkarten Einträge.
Jetzt muss ich aber wissen, ob die nVidia gerade läuft.

Bin für jede Anregung dankbar.

Tschau
Michael

Luckie 24. Jan 2005 08:49

Re: Wie die verwendete Grafikkarte ermitteln ?
 
WMI wäre wohl das beste.

HaZe 24. Jan 2005 08:51

Re: Wie die verwendete Grafikkarte ermitteln ?
 
hi

wer suchet der findet :)
http://www.delphipraxis.net/internal...ht=grafikkarte

cya

HaZe

Luckie 24. Jan 2005 08:56

Re: Wie die verwendete Grafikkarte ermitteln ?
 
WMI würde ich aber trotzdem für die bessere Wahl halten.

kalmi01 24. Jan 2005 08:56

Re: Wie die verwendete Grafikkarte ermitteln ?
 
Danke HaZe,

frage mich allerdings, warum ich den Artikel nicht gefunden habe ?

Wer die richtigen Suchbegriffe verwendet ist klar im Vorteil :wink:

Gruß und danke
Michael

HaZe 24. Jan 2005 09:15

Re: Wie die verwendete Grafikkarte ermitteln ?
 
grafikkarte hat 2 seiten results gebracht :)


cya

HaZe

Robert Marquardt 24. Jan 2005 12:10

Re: Wie die verwendete Grafikkarte ermitteln ?
 
Zitat:

Zitat von Luckie
WMI würde ich aber trotzdem für die bessere Wahl halten.

Das hat den Nachteil das es nur unter XP functioniert.
Ich wuerde das Setup API oder Config Manager API nehmen.

Luckie 24. Jan 2005 14:56

Re: Wie die verwendete Grafikkarte ermitteln ?
 
Ähm, und wie so geht dass dann auch unter Windows 2000 ohne irgendwelche Systemänderungen, wie Nachinstallationen? WMI ist sogar auf ME verfügbar. Nur unter Windows 98 muss was nachinstalliert werden.

Muetze1 24. Jan 2005 21:42

Re: Wie die verwendete Grafikkarte ermitteln ?
 
Moin!

Vielleicht reicht dir sowas schon als Ansatz ohne WMI:

Einfach eine App mit einer ListBox drauf (lbMonitorList) und dort dann folgendes in's FormCreate:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
Var
  Cntr       : Cardinal;
  Info       : TDisplayDevice;
  AdapterName : PChar;
  OldPos     : Integer;
Const
  DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = $00000001;
  DISPLAY_DEVICE_MULTI_DRIVER       = $00000002;
  DISPLAY_DEVICE_PRIMARY_DEVICE     = $00000004;
  DISPLAY_DEVICE_MIRRORING_DRIVER   = $00000008;
  DISPLAY_DEVICE_VGA                = $00000010;
Begin
  lbMonitorList.Items.Add('------------------ Displays ----------------');

  Cntr := 0;
  Info.cb := SizeOf(Info);
  While EnumDisplayDevices(Nil, Cntr, Info, 0) Do
  Begin
    lbMonitorList.Items.Add('* Device '+IntToStr(Cntr)+':');
    lbMonitorList.Items.Add('   DeviceName : '+Info.DeviceName);
    lbMonitorList.Items.Add('   DeviceString: '+Info.DeviceString);

    OldPos := lbMonitorList.Items.Add('   StateFlags:  ');

    If ( Info.StateFlags And DISPLAY_DEVICE_ATTACHED_TO_DESKTOP ) = DISPLAY_DEVICE_ATTACHED_TO_DESKTOP Then
      lbMonitorList.Items.Add('     + Display Device Attached To Desktop')
    Else
      lbMonitorList.Items.Add('     - Display Device Attached To Desktop');

    If ( Info.StateFlags And DISPLAY_DEVICE_MULTI_DRIVER ) = DISPLAY_DEVICE_MULTI_DRIVER Then
      lbMonitorList.Items.Add('     + Display Device Multi Driver')
    Else
      lbMonitorList.Items.Add('     - Display Device Multi Driver');

    If ( Info.StateFlags And DISPLAY_DEVICE_PRIMARY_DEVICE ) = DISPLAY_DEVICE_PRIMARY_DEVICE Then
      lbMonitorList.Items.Add('     + Display Device Primary Device')
    Else
      lbMonitorList.Items.Add('     - Display Device Primary Device');

    If ( Info.StateFlags And DISPLAY_DEVICE_MIRRORING_DRIVER ) = DISPLAY_DEVICE_MIRRORING_DRIVER Then
      lbMonitorList.Items.Add('     + Display Device Mirroring Driver')
    Else
      lbMonitorList.Items.Add('     - Display Device Mirroring Driver');

    If ( Info.StateFlags And DISPLAY_DEVICE_VGA ) = DISPLAY_DEVICE_VGA Then
      lbMonitorList.Items.Add('     + Display Device VGA')
    Else
      lbMonitorList.Items.Add('     - Display Device VGA');


    AdapterName := StrAlloc(SizeOf(Info.DeviceName));
    StrCopy(AdapterName, Info.DeviceName);
    EnumDisplayDevices(AdapterName, 0, Info, 0);
    lbMonitorList.Items.Insert(OldPos, '   Monitorname : ' + Info.DeviceString);
    StrDispose(AdapterName);

    Inc(Cntr);
  End;
End;
MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 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