<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Изменение яркости экрана]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=4093</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=4093&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Изменение яркости экрана».]]></description>
		<lastBuildDate>Mon, 18 Jan 2010 15:16:30 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Изменение яркости экрана]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=32381#p32381</link>
			<description><![CDATA[<p>Для обладателей видеокарт <strong>Nvidia</strong> яркость системы можно регулировать вызовом функций DLL. Загружаем и читаем <a href="http://http.download.nvidia.com/developer/SDK/Individual_Samples/DEMOS/common/src/NvCpl/docs/NVControlPanel_API.pdf">документацию</a>. Например, яркость можно регулировать так:<br />* максимальная:<br /></p><div class="codebox"><pre><code>rundll32.exe NvCpl.dll,dtcfg setbrightness 1 all 125</code></pre></div><p>* минимальная:<br /></p><div class="codebox"><pre><code>rundll32.exe NvCpl.dll,dtcfg setbrightness 1 all -125</code></pre></div><p>* нормальная<br /></p><div class="codebox"><pre><code>rundll32.exe NvCpl.dll,dtcfg setbrightness 1 all 0</code></pre></div><p>Контраст, соответственно, «setcontrast», от «-82» до «82».<br />Гамма, соответственно, «setgamma», от «0.5» до «6.0».</p><p>Сброс:<br /></p><div class="codebox"><pre><code>rundll32.exe NvCpl.dll,dtcfg setdefaults 1 color</code></pre></div><p>«1» — номер монитора, «all» — все каналы.</p><br /><p>Если необходимо автоматически увеличивать яркость монитора при открытии определенного окна (например, игра или окно видеопроигрывателя), можно использовать следующий пример. Вместо WINDOW_AHK_CLASS необходимо поставить ahk_class нужного окна.</p><div class="codebox"><pre><code>#SingleInstance force
#NoEnv
#NoTrayIcon

settimer, Gamma, 2000

Gamma:
settimer gamma, off
    WinWaitActive, ahk_class WINDOW_AHK_CLASS
    run rundll32.exe NvCpl.dll`,dtcfg setgamma 1 all 125
    WinWaitNotActive, ahk_class WINDOW_AHK_CLASS
    run rundll32.exe NvCpl.dll`,dtcfg setgamma 1 all 1
    settimer Gamma
return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (InFlames)]]></author>
			<pubDate>Mon, 18 Jan 2010 15:16:30 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=32381#p32381</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Изменение яркости экрана]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=32379#p32379</link>
			<description><![CDATA[<p>Данный скрипт позволяет регулировать яркость экрана. При этом отображается прогресс-бар со значением яркости системы.</p><p>Горячие клавиши:<br />Win+F2 - увеличить яркость<br />Win+F1 - уменьшить яркость</p><div class="codebox"><pre><code>#NoTrayIcon ; не отображать иконку скрипта в трее
#MaxHotkeysPerInterval 200
#NoEnv  ; Не использовать переменные окружения
#SingleInstance force
SetBatchLines -1

br := 128   ; Яркость в интервале от 0 до 255 (нормальное значение яркости 128)

#F2:: ; увеличить яркость Win + F2
#F1:: ; уменьшить яркость Win + F1

Brght_Step = 8 ; шаг регулировки

; -------------------
; НАЧАЛО КОНФИГУРАЦИИ
; -------------------

; Как долго отображать прогресс-бар (в миллисекундах)
vol_DisplayTime = 1500
; Прозрачность окна (0-255)
vol_TransValue = 200
; Цвет бэкграунда окна
vol_CW = EEEEEE   
vol_Width = 200  ; ширина прогресс-бара
vol_Thick = 20   ; высота прогресс-бара
; Позиция бара
vol_PosX := A_ScreenWidth/2 - vol_Width/2
vol_PosY := A_ScreenHeight/1.8 - vol_Thick/2
; --------------------
; КОНЕЦ КОНФИГУРАЦИИ
; --------------------
vol_BarOptionsMaster = 1:B1 R0-255 ZH%vol_Thick% ZX8 ZY4 W%vol_Width% X%vol_PosX% Y%vol_PosY% CW%vol_CW%


br += (InStr(A_ThisHotkey, &quot;F1&quot;) ? -Brght_Step : Brght_Step )
If ( br &gt; 256 )
   br := 256
If ( br &lt; 0)
   br := 0
VarSetCapacity(gr, 512*3)
Loop,   256
{
   If  (nValue:=(br+128)*(A_Index-1))&gt;65535
        nValue:=65535
   NumPut(nValue, gr,      2*(A_Index-1), &quot;Ushort&quot;)
   NumPut(nValue, gr,  512+2*(A_Index-1), &quot;Ushort&quot;)
   NumPut(nValue, gr, 1024+2*(A_Index-1), &quot;Ushort&quot;)
}
hDC := DllCall(&quot;GetDC&quot;, &quot;Uint&quot;, 0)
DllCall(&quot;SetDeviceGammaRamp&quot;, &quot;Uint&quot;, hDC, &quot;Uint&quot;, &amp;gr)
DllCall(&quot;ReleaseDC&quot;, &quot;Uint&quot;, 0, &quot;Uint&quot;, hDC)


vol_ShowBars:
; Получаем значение яркости, т.к. пользователь или другие программы могли ее изменить
vol_Master := br
if vol_Master &lt;&gt; 128
{
  vol_Colour = Blue   
  vol_Text = Brightness
}
else
{
;  vol_Colour = Red
  vol_Text = Brightness (normal)

}


; Что бы избежать мигания окна, создаем окно только в том случае, если оно не существует
IfWinNotExist, BrightnessOSDxyz
{
    Progress, %vol_BarOptionsMaster%  CB%vol_Colour% CT%vol_Colour%, , %vol_Text%, BrightnessOSDxyz
    WinSet, Transparent, %vol_TransValue%, BrightnessOSDxyz
}

Progress, 1:%vol_Master% , , %vol_Text%
SetTimer, vol_BarOff, %vol_DisplayTime%
return


vol_BarOff:
SetTimer, vol_BarOff, off
Progress, 1:Off
return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (InFlames)]]></author>
			<pubDate>Mon, 18 Jan 2010 15:04:42 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=32379#p32379</guid>
		</item>
	</channel>
</rss>
