![]() |
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: ![]() 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: |
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:
da gbts noch ne ganze reihe mehr solche befehle..
rundll32.exe NvCpl.dll,NvCycleDisplayDeviceEx
nur hab ich jetzt ein problem: unter vista funktionieren diese befehle nicht mehr!!! kann mir evtl da jemand weiter helfen? |
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). |
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? |
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 ;) |
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!
|
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:
|
Re: Zugriff auf NVIDIA-Grafik-Treiber
Was sind denn IOCTL's?
|
Re: Zugriff auf NVIDIA-Grafik-Treiber
Zitat:
Input / Output Controls bekannt als IOCTLs. :mrgreen: |
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 ![]() |
Re: Zugriff auf NVIDIA-Grafik-Treiber
@Mackhack:
Die API hab ich auch, s gibt glaub sogar noch ne neuere Version bei Nvidia. Die beschriebenen Funktionen haben unter XP auch wunderbar funktioniert, nur seit ich Vista drauf hab geht nichts mehr, also keine Fehlermeldung sondern einfach nichts. und @Olli: Das Problem tritt unter Vista auf, bin aber als Admin angemleldet und UAC ist ausgeschaltet. Auch wenn ich die dll in einem eigenen Delphi-Programm lade funktioniert nichts. |
Re: Zugriff auf NVIDIA-Grafik-Treiber
Bist du mal mit nem Debugger durchgegangen bis du in deren DLL bist? Funktioniert das Laden überhaupt? Sind deine Manifeste alle Vista-kompatibel?
|
Re: Zugriff auf NVIDIA-Grafik-Treiber
Ich hab keine Ahnung wie das mit dem debuggen geht.. :(
Aber die dll laden kann ich ohne probleme in meinem proramm. und vista-kompatibel sollte ja auch alles sein (delphi 2007, nvidia vista-treiber) |
Re: Zugriff auf NVIDIA-Grafik-Treiber
Tja, wie soll ich dir da helfen? Zum Thema Debuggen sollte es doch was in der Delphi-Hilfe oder im Internet geben?!
|
Re: Zugriff auf NVIDIA-Grafik-Treiber
Hallo zusammen!
Ich weiß, das Thema ist schon ein wenig eingestaubt, aber ich habe gerade gesehen, dass es im aktuellen Treiber die Möglichkeit gibt Profile zu verwenden. Eventuell würde es schon reichen, wenn du deine Einstellungen in 2 Profile schreibst und dann nur diese lädst. Grüße Admirandis |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz