Hallo,
ich suche ein Programm mit dem ich meinen Monitor per DDC/CI-Protokoll einstellen kann.
Ich möchte wenn ich z.B. ein Spiel starte automatisch die Helligkeit erhöhen, allerdings geht das mit "Smart Control II" das ich zu meinem Monitor bekommen habe nicht. Hat jemand eine Lösung?
MfG
Suche DDC/CI-Tool um Monitor per Verknüpfung/Batchdatei zu steuern
-
-
-
-
Display Tuner geht nicht unter 64Bit und mit EnTech mControl kann ich keine Profile speichern oder abrufen.
-
Die Frage ist zwar schon sehr alt, aber ich finde dennoch extrem aktuell, also ich kann mir nicht mehr vorstellen, meinen Monitor über die Monitor-Tasten zu steuern, viel zu umständlich.
Ich benutze folgendes Program: ClickMonitorDDC ist ein portables tool, mit dem man Helligkeit und Kontrast eines DDC kompatiblen Monitors über ein tray-icon in der taskbar steuern kann,
das icon zeigt auch die aktuell gesetzten Monitor-Werte an. Man kann mehrere Monitor steuern, ebenso ist auch eine batch-steuerung bzw. Parameterangabe über Verknüpfungen möglich. -
Hole es auch gerade mal wieder hoch, denn es ist wirklich immer noch ein aktuelles Problem.
Ich habe nun alles von EnTech ausprobiert, nichts geht, immer behauptet die Software mein aktueller Monitor hätte keine DDC Unterstützung.
Nur das genau hier verlinkte ClickMonitorDDC funktioniert bisher von allen Tools, die ich nun durch habe (sicher nicht alle), was ja auch DDC verwendet.
Was ich also nun nicht kapiere ist, wie das Tool funktionieren kann, während die Anderen versagen, vor allem von den EnTech Tools, die ja ständig geupdatet werden, bin ich da doch ziemlich enttäuscht (kenne die Tools nun schon länger). Vor allem weil man mit den Tools nahezu alles auslesen kann, was der Monitor liefert / was einstellbar bei diesem ist. Und dann kommt so ein kleines Tool und schafft das was EnTech mit seiner Jahrelangen Erfahrung nicht hinkriegt.
Bei meinem Monitor handelt es sich übrigens um den Samsung UHD Monitor U28D590D, bei dem leider das Samsung eigene Tool MagicTune nicht funktioniert, das wäre natürlich das Optimum gewesen...
Da ich selbst ein wenig programmiere und gerne kleine Tools schreibe, wollte ich mir schon selbst so ein Tool schreiben, leider bisher immer daran gescheitert, dass man zu dem Thema doch überraschend wenig findet. Vor allem lässt sich ja sicherlich je nach Monitor noch mehr als nur Helligkeit und Kontrast per DCC/CI einstellen.
-
Ich habe hier ein AutoHotkey-Script im Einsatz, das die Monitor-Helligkeit (meines Dell 2709W) per Mausrad regelt, wenn der Cursor in der oberen linken Ecke ist. Das würde ich mal testen.
Falls es nicht läuft (DDC/CI scheint bei deinem Monitor ja nicht komplett implementiert zu sein, wenn mehrere Tools das behaupten), kriegst du vielleicht raus, welche Methoden der Monitor unterstützt und welche nicht.
(AutoHotkey installieren, Script z.B. als "dimmscreen.ahk" irgendwo speichern und starten. Script kann über das TrayIcon wieder beendet werden.)
Code
Display More;============================================================================= ; DimmScreen (Cursor in der oberen linken Ecke -> mit Mausrad Screen dimmen) ;============================================================================= ; Ein Tooltip zeigt den aktuellen Wert in einem Bereich von 100 bis -100. ; Im Bereich von 100 bis 0 wird die Helligkeit direkt im Monitor geregelt ; (über die Monitor-Schnittstelle DDC/CI), im Bereich von 0 bis -100 wird ; der Gamma-Wert (GammaRamp) im Bildschirmtreiber geregelt, um bei kleinster ; Monitor-Helligkeitseinstellung noch weiteren Spielraum nach unten zu haben. ;============================================================================= #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. #SingleInstance force SendMode Input ; Recommended for new scripts due to its superior speed and reliability. NoTooltipMax = 0 ; permanenten Tooltip zeigen, wenn Brightness größer X NoTooltipMin = 0 ; permanenten Tooltip zeigen, wenn Brightness kleiner X TooltipOpacity = 70 ; Transparenz perm. Tooltip, von 0 (unsichtbar) - 100 Increment = 10 ; Schrittweite CoordMode, Mouse, Screen GoSub, InitDimmScreen Return WheelUp:: MouseGetPos, mouseX, mouseY if(mouseX + mouseY < 2) SetBrightness(1) else Send, {WheelUp} Return WheelDown:: MouseGetPos, mouseX, mouseY if(mouseX + mouseY < 2) SetBrightness(-1) else Send, {WheelDown} Return InitDimmScreen: ; ----------------------------------------------------------------------------------- ; http://www.autohotkey.com/board/topic/67375-screen-brightness-question/#entry426767 ; ----------------------------------------------------------------------------------- ; Initialize Monitor handle hMon := DllCall("MonitorFromPoint" , "int64", 0 ; point on monitor , "uint", 1) ; flag to return primary monitor on failure ; Find number of Physical Monitors DllCall("dxva2\GetNumberOfPhysicalMonitorsFromHMONITOR", "int", hMon, "uint*", nMon) ; Get Physical Monitor from handle VarSetCapacity(Physical_Monitor, (A_PtrSize ? A_PtrSize : 4) + 128, 0) DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR" , "int", hMon ; monitor handle , "uint", nMon ; monitor array size , "int", &Physical_Monitor) ; point to array with monitor hPhysMon := NumGet(Physical_Monitor) if (!DllCall("dxva2\GetMonitorCapabilities", "int", hPhysMon, "uint*", monCaps, "uint*", monColorTemps)) MsgBox % "Monitor does not support DDC/CI." else if (monCaps & 0x2 = 0) ; MC_CAPS_BRIGHTNESS MsgBox % "Monitor does not support Brightness functions." else DllCall("dxva2\GetMonitorBrightness", "int", hPhysMon, "uint*", minBright, "uint*", Brightness, "uint*", maxBright) ; ----------------------------------------------------------------------------------- ToolTip := Brightness Gamma := 128 Return SetBrightness(flag) { Global if(Brightness = "") GoSub, InitDimmScreen if(Brightness = "") Return else if(flag > 0 && ToolTip > -1 || flag < 0 && ToolTip > 0) ; Bereich 0 - 100 { Brightness += Increment * flag Brightness := Brightness > 100 ? 100 : Brightness < 0 ? 0 : Floor(Brightness) ToolTip := Brightness DllCall("dxva2\SetMonitorBrightness", "int", hPhysMon, "uint", Brightness) } else ; Bereich -100 - 0 { Gamma += Increment * flag * 1.28 Gamma := Gamma > 128 ? 128 : Gamma < 0 ? 0 : Gamma ToolTip := Round(Gamma/1.28)-100 ; --------------------------------------------------------------------------------------- ; http://www.autohotkey.com/board/topic/29257-solved-brightnessgamma-control/#entry186745 ; --------------------------------------------------------------------------------------- VarSetCapacity(gr, 512*3) Loop, 256 { If(nValue := (Gamma+128)*(A_Index-1)) > 65535 nValue := 65535 NumPut(nValue, gr, 2*(A_Index-1), "Ushort") NumPut(nValue, gr, 512+2*(A_Index-1), "Ushort") NumPut(nValue, gr, 1024+2*(A_Index-1), "Ushort") } hDC := DllCall("GetDC", "Uint", 0) DllCall("SetDeviceGammaRamp", "Uint", hDC, "Uint", &gr) DllCall("ReleaseDC", "Uint", 0, "Uint", hDC) ; --------------------------------------------------------------------------------------- } Progress, b1 w100 fs24 x10 y10 zh0 zx0 zy0, % ToolTip SetTimer, RemoveToolTip, -1200 } RemoveToolTip: Progress, Off if(ToolTip > NoTooltipMax || ToolTip < NoTooltipMin) { W := ToolTip > -100 ? 20 : 26 Progress, b1 w%W% fs10 x1 y1 zh0 zx0 zy0, % ToolTip,, BrightnessToolTip WinSet, Transparent, % TooltipOpacity * 2.55, BrightnessToolTip } Return
-
Danke, werde ich mal zu Testzwecken ausprobieren, benutze AHK sonst nicht.
Ich hab gleich nach meinem Post oben mit einem Tool begonnen, bei dem man selbst Profile für ClickMonitorDDC schreiben kann. Werden dann über ein TrayIcon PopupMenü direkt per Profilname angeklickt und beinhalten dann Helligkeit, Kontrast und welcher Monitor. Funktioniert auch schon fast alles einwandfrei. Hier und da muss ich noch etwas feilen und dann mal sehen ob ich es zum Download frei gebe.
Hatte einfach gerade Lust dazu wieder was zu coden (nutze PureBasic), da ich das nur als Hobby hier und da seit ewig vielen Jahren mache rostet man ja sonst ein und vergisst alles wieder.