Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zugriff auf NVIDIA-Grafik-Treiber (https://www.delphipraxis.net/79905-zugriff-auf-nvidia-grafik-treiber.html)

Admirandis 30. Okt 2006 19:18


Zugriff auf NVIDIA-Grafik-Treiber
 
Hi Leute!

Ich hoffe jetzt einfach mal, dass ich im richtigem Forum gelandet bin... ^^

Ich hab mir folgendes überlegt: Wäre es irgendwie möglich auf den NVIDIA Grafik Treiber zuzugreifen und so Einstellungen an der Grafikeinstellung zu machen...

Gekommen ist mir die Idee dadurch, dass ich letztens bei einer Veranstaltung bei unserer Schule an meiner Grafikkarte ein Monitor, einen Beamer und einen Fernseher hängen hatte. Das Problem lag jetzt darin, dass ich ziemlich oft ziemlich schnelle umschalten musste zwischen Beamer, TV und Bildschirm... Deswegen wäre es hier praktisch gewesen irgendein kleines Programm im Hintergrund laufen zu lassen, des über einen globalen hotkey die Einstellung ändert...

Ich hab auch schon ein bisschen was hier im Forum gefunden: Link

Hab aber hierbei keine Ahnung, wie man über Windows mit Treiber kommunizieren soll :gruebel:

Ich hoffe ihr habt irgendwelche geistreiche und sinnvolle Ideen und Kommentare für mich...

Grüße

Admirandis :dp:

Sixfold 23. Jun 2007 10:46

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Genau das gleiche Problem hatteich auch... Bin aber inzwischen n bisschen weiter gekommen: bei nvidia gabs mal den Control Panel SDK.. gibts aber jetzt wohl nicht mehr.

Auf jeden fall kannstdu beispielsweise per hotkey dein Primärmonitor wechseln:
Delphi-Quellcode:
rundll32.exe NvCpl.dll,NvCycleDisplayDeviceEx
da gbts noch ne ganze reihe mehr solche befehle..

nur hab ich jetzt ein problem: unter vista funktionieren diese befehle nicht mehr!!!

kann mir evtl da jemand weiter helfen?

Olli 1. Jul 2007 01:32

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Mit einem Treiber kommunizierst du über jene Funktionen mit denen du auch Dateien schreibst/liest sowie über DeviceIoControl (es gibt noch andere weniger dokumentierte).

Jedoch muß man dazu alle Parameter kennen. Genau das wird dir aber keiner der Grafikkartenhersteller sagen. Ergo benutze deren GUI zum Konfigurieren oder schau ob du die Registryschlüssel rausfinden kannst, wo diese Einstellungen seitens der GUI gespeichert werden (bspw. mit RegMon von Sysinternals).

Sixfold 2. Jul 2007 01:43

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Ich hab das Programm mit dem Process Monitor überprüft, es macht keine "verdächtigen" Registry-Einträge o.Ä.
Aber es startet die Rundll32.exe. Wenn ich aber diese Exe mit den gleichen Parametern starte wies zuvor das Nvidia Programm gemacht hat passiert nichts.
Als hätte der Rundll Prozess keine Rechte oder so.. :(

Hat da jemand ne idee dazu?

Olli 2. Jul 2007 01:51

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Welches OS? Rundll läuft im Kontext des Benutzers der es startet, also wirst du selber eine Aussage über die Rechte machen können.

O.g. Zeile startet im Prinzip nur das Control-Panel für den nVidia-Treiber, nicht mehr und nicht weniger. Übrigens könnte es sein, daß das nVidia-Programm einen Mutex erzeugt o.ä., so daß du mindestens das gleiche tun mußt um es anzeigen zu können. Im schlimmsten Fall überprüfen die, ob die Signatur der Datei ihre eigene ist. Dann hättest du ein Problem ;)

Mackhack 2. Jul 2007 03:38

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Liste der Anhänge anzeigen (Anzahl: 1)
Attached hab ich mal das nVidia API Referenc pdf! Das gibt alle Funktionen preis die nVidia wohl preisgeben will!

Olli 2. Jul 2007 03:59

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Nicht schlecht, hätte ich nicht erwartet. Aber wie ich es so sehe sind zumindest keine IOCTLs erklärt ... also zumindest wie zu erwarten keine direkte Kommunikation mit dem Treiber :mrgreen: :zwinker:

Mackhack 2. Jul 2007 04:00

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Was sind denn IOCTL's?

turboPASCAL 2. Jul 2007 09:24

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
Zitat:

Zitat von Mackhack
Was sind denn IOCTL's?

Input / Ouput Controls known as IOCTLs. :gruebel:
Input / Output Controls bekannt als IOCTLs. :mrgreen:

Olli 2. Jul 2007 10:11

Re: Zugriff auf NVIDIA-Grafik-Treiber
 
IOCTL = I/O Control Code ;)

Das sind einfach "Nummern" die man zusammen mit Ein- und/oder Ausgabepuffern (wobei das nur eine Konvention ist, aber der Ausgabepuffer durchaus auch als zweiter Eingabepuffer benutzt werden kann) an ein Gerät schickt. Der Treiber welcher das Gerät bereitstellt nimmt dann (üblicherweise ;)) die gewünschte Aktion vor. Siehe auch MSDN-Library durchsuchenCTL_CODE.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 Uhr.
Seite 1 von 2  1 2      

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