PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AutoIT/Script Spezialist benötigt


cR@b
2014-08-19, 16:44:37
Hi Leute,

ich versuche gerade ein workaround mit AutoIT für mein Problem zu kreieren, jedoch habe ich null Ahnung von Programmierung bzw. Scripterstellung, geschweige denn AutoIT.

Da meine nVidia Farbsettings bei nem Kaltstart ständig resettet werden, obwohl der nV Settings Button visuell bereits aktiviert scheint (allerdings die Default Farben ausgewaschen sichtbar sind) , möchte ich eine .exe erstellen, welche mir das nVidia Controlpanel startet, den Button trotzdem erneut klickt und das Panel wieder schließt.
Leider hat der Button keine eigene ID und ich muss mit Coordinaten innerhalb des entsprechenden ID Fensters arbeiten aber ich weiß nicht wie man Koordinaten richtig angibt. Mein bisheriger Versuch sieht folgendermaßen aus:

Sleep(6000)
Run ("C:\Program Files\NVIDIA Corporation\Control Panel Client\nvcplui.exe")
WinWaitActive ("NVIDIA Control Panel")
ControlClick("NVIDIA Control Panel", "", "[ID:4103]")
WinWaitActive ("NVIDIA Control Panel", "", "[ID:391]")
Controlclick ("NVIDIA Control Panel", "ID:391", "[, clicks = 1 [, 45 [, 225]]]")
WinWaitActive ("NVIDIA Control Panel", "", "[ID:59422]")
ControlClick("NVIDIA Control Panel", "", "[ID:1021]")
WinClose ("NVIDIA Control Panel")

Mit diesem öffnet sich das Fenster zwar und schließt sich auch wieder aber es passiert nix. Die Koordinaten sind lt. AutoIT Info 45, 225 (x,y?).

http://abload.de/thumb/buttony6uyp.jpg (http://abload.de/image.php?img=buttony6uyp.jpg)

Kann mir da zufällig Jemand auf die schnell helfen?

hadez16
2014-08-20, 12:24:37
http://www.autoitscript.com/forum/topic/131743-nvidia-apply-desktop-settings-after-reboot/

Was dieser Autor anders macht: Er nutzt innerhalb des Control Panels Hotkeys statt Koordinaten um die Controls zu bedienen ;)


Global Const $NVCPL_HotKey_ChooseOther = "!o" ; Alt-O, "Choose how color is set" to "Other applications ..."
Global Const $NVCPL_HotKey_ChooseNVidia = "!s" ; Alt-S, "Choose how color is set" to "Use NVidia ..."
Global Const $NVCPL_HotKey_Button_Apply = "!a" ; Alt-A, "Apply"


Vieles kann man auch direkt über die Kommandozeile machen: http://developer.download.nvidia.com/SDK/9.5/Samples/DEMOS/common/src/NvCpl/docs/NVControlPanel_API.pdf

cR@b
2014-08-20, 16:05:22
Hmm ok... kenn mich halt null damit aus :( Hab jetzt aber über das AutoIT Forum Hilfe bekommen und konnte das Problem zusammen mit den Leute dort beseitigen. Falls Jemand unter ähnlichem Problem leidet, anbei der Code:

Sleep(5000)
Run ("C:\Program Files\NVIDIA Corporation\Control Panel Client\nvcplui.exe")
WinWaitActive ("NVIDIA Control Panel")
ControlClick("NVIDIA Control Panel", "", "[ID:4103]")
WinWaitActive ("NVIDIA Control Panel", "", "[ID:391]")
autoitsetoption ("MouseCoordMode",0)
MouseClick ("left", 328, 416)
WinWaitActive ("NVIDIA Control Panel", "", "[ID:59422]")
ControlClick ("NVIDIA Control Panel", "", "[ID:2]")
WinClose ("NVIDIA Control Panel")

hadez16
2014-08-20, 19:36:30
du machst es nun trotzdem über koordinaten statt über Hotkeys? :D

Okay...

cR@b
2014-08-20, 23:21:44
Jo leider, anders funktionierte es nicht. Wollte jetzt kein fertiges Script verwenden müssen, sondern ein Eigenes erstellen. Leider hat es mit den ControlClick Koordinaten nicht geklappt. Wäre mir persönlich auch lieber gewesen!

Mit Kommandozeilen kenne ich mich leider auch nicht aus, wollte jetzt auch nicht ein halbes Jahr für die Pippifaxlösung benötigen :ugly:

hadez16
2014-08-21, 08:17:25
Das Streben nach Perfektion, junger Padawan!

Das mit dem Koordinaten funktioniert doch auch nur wenn Windows das Panel immer gleich positioniert, oder ist das Vollbild?

cR@b
2014-08-22, 11:49:46
Junger Padawan? Wenn du wüsstest! :ugly:

Nein die ControlClick Coords beziehen sich auf die ID innerhalb des Fensters, egal wo es sich auf dem Desktop befindet. Leider werden aber die CCC anscheinend vom AutoIT Info Tool falsch ausgelesen. Die Mauskoordinatrlen hingegen stimmen und funktionieren einwandfrei! Der Effekt ist der selbe von daher passt das schon so. Hauptsache ich muss mich nicht nach jedem Kaltstart selber durchklicken...