<?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=5897</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5897&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Переход бука в режим сна и через ххх время гибернация помогите».]]></description>
		<lastBuildDate>Sat, 11 Jun 2011 20:19:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AHK: Переход бука в режим сна и через ххх время гибернация помогите]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=49087#p49087</link>
			<description><![CDATA[<p>Долго искал и не нашел. Задача у меня такая. Нужно чтобы ноутбук засыпал при переключении на питание от батареи через 60 секунд и перед сном нажимал стоп, Send, {Media_Stop}. Потом через 5 минут просыпался и уходил в гибернацию. В самой винде7 есть такая возможность, но если запущена навигация или какая еще программа, которую виндовс7 расценивает как мультимедийную, то у ноутбука бессонница. Есть куски скриптов которые следят за состоянием питания, отправляют в сон и гибернацию, но нехватает куска который бы пробудил компьютер из режима сна через заданное время. Пробовал усыплять ноут первыми двумя кусками, но в гибернацию он сам не уходит. Помогите собрать скрипт из этих кусков и дописать недостающий.</p><div class="codebox"><pre><code>кусок слежения за состоянием питания ноута

#SingleInstance force    ; перезагрузить скрипт, если он уже запущен
#NoEnv     ; запрещаем имена переменных как у переменных окружения
SendMode Input     ; ускорренный ввод
#Persistent     ; держать скрипт запущенным
SetTitleMatchMode 2    ; 2 - заголовок окна должен содержать значение, заданное в WinTitle 
DetectHiddenWindows, On
SetTimer, GetPowerSource, 5000 
return ; End of main program 

GetPowerSource: 
VarSetCapacity(powerStatus, 1+1+1+1+4+4) 
success := DllCall(&quot;GetSystemPowerStatus&quot;, &quot;UInt&quot;, &amp;powerStatus) 
acLineStatus:=ReadInteger(&amp;powerstatus,0,1,false) 
batteryFlag:=ReadInteger(&amp;powerstatus,1,1,false) 
batteryLifeTime:=ReadInteger(&amp;powerstatus,4,4,fals e) 
batteryFullLifeTime:=ReadInteger(&amp;powerstatus,8,4, false) 
output=AC Status: %acLineStatus%`nBattery Flag: %batteryFlag%`nBattery Life (percent): %batteryLifePercent%`nBattery Life (time): %batteryLifeTime%`nBattery Life (full time): %batteryFullLifeTime% 
If %acLineStatus% = 0 
{ 
sleep 10000
VarSetCapacity(powerStatus, 1+1+1+1+4+4) 
success := DllCall(&quot;GetSystemPowerStatus&quot;, &quot;UInt&quot;, &amp;powerStatus)
acLineStatus:=ReadInteger(&amp;powerstatus,0,1,false)
If %acLineStatus% = 0
{
Send, {Media_Stop}
ExitApp 
}
else
Return
} 
else
Return

ReadInteger( p_address, p_offset, p_size, p_hex=true ) 
{ 
value = 0 
old_FormatInteger := a_FormatInteger 
if ( p_hex ) 
SetFormat, integer, hex 
else 
SetFormat, integer, dec 
loop, %p_size% 
value := value+( *( ( p_address+p_offset )+( a_Index-1 ) ) &lt;&lt; ( 8* ( a_Index-1 ) ) ) 
SetFormat, integer, %old_FormatInteger% 
return, value 
}

кусок отправки в режим сна

Suspend: 
Gui, Submit, NoHide 
if force 
DllCall(&quot;PowrProf\SetSuspendState&quot;, &quot;int&quot;, 0, &quot;int&quot;, 1, &quot;int&quot;, 0) 
else 
DllCall(&quot;PowrProf\SetSuspendState&quot;, &quot;int&quot;, 0, &quot;int&quot;, 0, &quot;int&quot;, 0) 
Return 

кусок отправки в режим гибернации

Hibernate: 
Gui, Submit, NoHide 
if force 
DllCall(&quot;PowrProf\SetSuspendState&quot;, &quot;int&quot;, 1, &quot;int&quot;, 1, &quot;int&quot;, 0) 
else 
DllCall(&quot;PowrProf\SetSuspendState&quot;, &quot;int&quot;, 1, &quot;int&quot;, 0, &quot;int&quot;, 0) 
Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (se13)]]></author>
			<pubDate>Sat, 11 Jun 2011 20:19:19 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=49087#p49087</guid>
		</item>
	</channel>
</rss>
