WinFuture-Forum.de: Pci-devicelist Auslesen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Pci-devicelist Auslesen


#1 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 06. Mai 2008 - 09:32

Hi,

ich suche irgendwas womit ich die Liste der PCI-Devices und ihrer Bezeichnungen auslesen und in einem CMD-Script weiterverwenden kann. Mit WMI geht es scheinbar nicht, jedenfalls habe ich dort keine Moeglichkeit gefunden mir eine solche Liste ausgeben zu lassen.
Ich muss von diversen verschiedenen Rechnern das Grafikkarten-Modell auslesen ohne dass fuer diese Karte Treiber installiert sind. Also muss ich definitiv im Lowlevel-Bereich der Hardware lesen, da die High-Level-Bezeichnungen wie sie zum Beispiel beim auslesen der Displaykonfiguration entstehen, noch gar nicht vorhanden sind.
Hat irgendwer eine Idee womit ich das bewerkstelligen koennte?

Gruesse,
sкavєи
Eingefügtes Bild
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 06. Mai 2008 - 10:03

Da du WMI erwähnst, gehe ich davon aus, dass es sich nur um Windows-Kisten handelt.

GPU-Z würde sich hier anbieten, aber ich weiß nicht, ob sich das Teil scripten lässt.

Um einen Low-Level Zugriff über ASM zu vermeiden, könntest du zudem auf die OpenGL- bzw. DirectX APIs zugreifen, beide bieten Spezifikationen an um Informationen über die Grafikkarte auszulesen.
0

#3 Mitglied ist offline   Gast 

  • Gruppe: aktive Mitglieder
  • Beiträge: 818
  • Beigetreten: 02. September 07
  • Reputation: 22

geschrieben 06. Mai 2008 - 10:48

Halo sкavєи

Vielleicht hilft dir das Befehlszeilendienstprogramm Devcon weiter.
Alle sagten es geht nicht, da kam einer der das nicht wusste und tat es einfach.
0

#4 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 07. Mai 2008 - 08:11

Hmm, OK so richtig einfach geht's mit beiden Tips nicht, aber das kann ich ja auch schlecht erwarten. Aber mit DevCon kann ich zumindest die Vendor- und die Model-ID auslesen. Damit laesst sich arbeiten. Vielen Dank. :)

Nun habe ich aber ein andere Problem. Ich habe zwei Scripte, install.cmd und drivers.cmd. install.cmd sucht per WMI das Modell des Rechners heraus und ruft dann entsprechend aus einem Unterordner das richtige drivers.cmd per call auf. Beide Scripte beginnen mit diesen beiden Zeilen:
@echo off
cls
Aber wenn ich jetzt install.cmd starte bekomme ich immer noch alle Meldungen zurueck. Erst nach dem call auf drivers.cmd wird das Fenster ge-cleared und das echo abgeschaltet. Wenn ich das @echo off und cls aus dem drivers.cmd herausnehme so bekomme ich saemtlichen Output aus beiden Scripten ausgegeben. Warum funktioniert das abschalten des echo in dem einen Script nicht?

Edit: Hat sich erledigt, das Encoding war falsch. War auf UTF-8 gestellt.

Dieser Beitrag wurde von sкavєи bearbeitet: 07. Mai 2008 - 08:28

Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 21. Mai 2008 - 09:44

Bin jetzt endlich dazu gekommen es umzusetzen. hier mal meine Loesung, vielleicht hilft es ja irgendwem mal:
@echo off
cls
set errorlevel=0

rem Auslesen der VendorID aller PCI-Geraete und schreiben in temporaere Datei
for /F "tokens=2 Delims=\&" %%i in ('devcon find pci\*') do @echo %%i >> %temp%\pcivendors.txt

rem Ueberpruefen der VendorIDs auf bekannte Hersteller
rem Checking for Matrox
find "VEN_102B" %temp%\pcivendors.txt > nul
if %errorlevel% == 0 goto matrox
set errorlevel=0
rem Checking for NVIDIA
find "VEN_10DE" %temp%\pcivendors.txt > nul
if %errorlevel% == 0 (goto nvidia) else goto exit

:matrox
echo  Matrox-Grafikkarte gefunden... Beginne Treiberinstallation...
start /wait %systemdrive%\drivers\Matrox\setup.exe /s
REG ADD HKCU\Software\matrox\PowerDesk\Version6\CurrentSettings /v DontShowDHWizard /t REG_DWORD /d 00000001
shutdown -a
goto exit

:nvidia
echo  NVIDIA-Grafikkarte gefunden... Beginne Treiberinstallation
start /wait %systemdrive%\drivers\NVIDIA\setup.exe -s -f1setup.iss
goto exit

:exit
exit
Die VendorIDs eurer Hardware findet ihr in den INF-Dateien der Treiber. Einfach in den Dateien mal nach "VEN_" suchen. Ich habe hier jetzt nur Matrox und NVIDIA drin weil ich es nur fuer Karten dieser beiden Hersteller benoetige. Theoretisch koennte man damit aber alle Hersteller und auch noch ganz andere Anschluesse als nur PCI auslesen.

Dieser Beitrag wurde von sкavєи bearbeitet: 21. Mai 2008 - 09:50

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0