<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AutoIt v3: Автоматическое отключения компьютера после простоя]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5300</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5300&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AutoIt v3: Автоматическое отключения компьютера после простоя».]]></description>
		<lastBuildDate>Sat, 25 Dec 2010 13:11:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AutoIt v3: Автоматическое отключения компьютера после простоя]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=43012#p43012</link>
			<description><![CDATA[<p>Смысл идеи прост - подмена заставки Windows скомпиллированным скриптом-псевдозаставкой, который автоматически запустится после заданного интервала простоя(в соответствии с настройками заставки) и выполнит требуемые операции, например выключит компьютер.</p><p>-----------------------------------<br /><em>Без гарантий. Используете на свой страх и риск.</em></p><p>Скрипт автоматического выключения компьютера через заданный промежуток времени после простоя. После компилляции скрипта scrpoff.au3 в исполняемый EXE, следует изменить расширение EXE на SCR, после чего установить полученную псевдозаставку через пункт &quot;Установить&quot; контекстного меню Проводника, что равносильно команде rundll32.exe desk.cpl,InstallScreenSaver %l. Далее следует настроить задержку включения псевдозаставки в свойствах &quot;Экран&quot; - &quot;Заставка&quot;. После автоматического запуска, скрипт-псевдозаставка начнет отсчет дополнительного простоя в минутах (простой указан в файле scrpoff.ini, который расположен рядом со скриптом), по истечении которого компьютер будет автоматически выключен. Чтобы прервать исполнение псевдозаставки и остановить отсчет простоя достаточно сдвинуть курсор мыши.</p><p>Таким образом суммарный интервал простоя, по прошествии которого компьютер будет выключен равен задержке включения псевдозаставки плюс интервалу простоя, указанному в файле scrpoff.ini</p><p><strong>scrpoff.au3</strong>:<br /></p><div class="codebox"><pre><code>#NoTrayIcon;
 ;----------------------------------------------------------------------
 Const $PWR_FORCE = 4        ;Принудительное завершение процессов
 Const $PWR_POWER_OFF = 8    ;Выключение питания

 Const $txt = &#039; Идет подготовка к выключению компьютера...&#039; &amp; @CRLF &amp; &#039;Для отмены переместите курсор мыши...&#039;;
 
 $MyIni = @ScriptDir &amp; &#039;\scrpoff.ini&#039;;

 ;/Задержка выключения в минутах читается из ini файла/
 $MaxTimeout = Int(IniRead ($MyIni, &#039;shutdown&#039;, &#039;timeout&#039;, 10));
 ;----------------------------------------------------------------------
 Sleep(100);
 SplashTextOn(&#039;&#039;, $txt, 500, 100, -1, -1, 1+32, &#039;Verdana&#039;, 10);
 Sleep(100);

 ;/Цикл дополнительного простоя/
 ;----------------------------------------------------------------------
 $StartTimer = TimerInit();
 Sleep(100);
 $MPos2 = MouseGetPos();

 While 1
     ;--------------------------------------------------------------
     $Diff = Int(TimerDiff($StartTimer)/(6e+4));
     If $Diff&gt;$MaxTimeout Then ShutdownMachine(); ExitLoop;
     ;--------------------------------------------------------------
     $MPos1 = MouseGetPos();
     If BitXor($MPos1[0],$MPos2[0]) Or BitXor($MPos1[1],$MPos2[1]) Then ExitLoop;
     Sleep(200);
     $MPos2 = MouseGetPos();
     If BitXor($MPos1[0],$MPos2[0]) Or BitXor($MPos1[1],$MPos2[1]) Then ExitLoop;
     ;--------------------------------------------------------------
 Wend 
 Exit;
 ;----------------------------------------------------------------------

 ;[Выключение ПК]
 ;----------------------------------------------------------------------
 Func ShutdownMachine()
     SplashOff();
    Sleep(300);
    Shutdown ($PWR_FORCE + $PWR_POWER_OFF);
 EndFunc
 ;----------------------------------------------------------------------
 ;pltrgst 2010</code></pre></div><p><strong>scrpoff.ini</strong>(расположен рядом с откомпиллированным скриптом):<br /></p><div class="codebox"><pre><code>;Интервал простоя после запуска псевдозаставки, минут. 
;По истечении интервала простоя компьютер будет выключен.
[shutdown]
timeout = 1</code></pre></div><p>/Настройки параметров питания/<br />Переход компьютера в ждущий/спящий режимы должен быть запрещен.</p><p>Отключение монитора и жестких дисков допустимо раньше, нежели включение псевдозаставки.</p><p>Lang. AutoIt v3<br />Тестировалось на OC WinMe<br />-----------------------------------</p>]]></description>
			<author><![CDATA[null@example.com (Poltergeyst)]]></author>
			<pubDate>Sat, 25 Dec 2010 13:11:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=43012#p43012</guid>
		</item>
	</channel>
</rss>
