<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: HotKey как сохранить сочетание клавиш]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=17310</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17310&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: HotKey как сохранить сочетание клавиш».]]></description>
		<lastBuildDate>Sun, 14 Aug 2022 20:26:42 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: HotKey как сохранить сочетание клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=154396#p154396</link>
			<description><![CDATA[<p>Win не поддерживается в Hotkey, как и ещё много кнопок. Если речь про него, вы зачем то удалили код.<br />Когда то делал такое <a href="http://forum.script-coding.com/viewtopic.php?pid=137176#p137176">http://forum.script-coding.com/viewtopi … 76#p137176</a>.<br />На его основе можно добавить Win.<br /></p><div class="codebox"><pre><code>
#NoEnv
#SingleInstance Force  
#KeyHistory 0
ListLines Off
SetBatchLines -1 
#UseHook

Global Data := {}, hGui
Gui, +HwndhGui
Gui, Font, s12, Comic Sans MS

Gui, Add, Text, Center gText Border vTextHotkey1 w300
Gui, Add, Text, Center gText Border vTextHotkey2 wp  

Gui, Show
Gui, Add, Hotkey, vHotkey1 Hidden gHotkey w0 h0
Gui, Add, Hotkey, vHotkey2 Hidden gHotkey wp hp
Return
 

#IF WinActive(&quot;ahk_id&quot; hGui) &amp;&amp; HotkeyFocus(name)
*LWin::
*RWin:: 
	Hotkey(name, 1)  
	KeyWait, LWin 
	KeyWait, RWin  
	Return

*LWin Up::
*RWin Up:: Hotkey(name, 0)  
#IF

HotkeyFocus(byref name) {
	GuiControlGet, name, FocusV
	If (name ~= &quot;^Hotkey\d+$&quot;)
		Return 1
}  

Text() {
	GuiControl, Focus, % SubStr(A_GuiControl, 5) 
}
	
Hotkey(p1, p2 = &quot;&quot;) {  
	If (p1 + 0 = &quot;&quot;)
	{
		Control := p1 
		If p2
			(str .= &quot;Win + &quot;), win := 1
	}	
	Else 
		Control := A_GuiControl
	HK := %Control%
	If !win &amp;&amp; (GetKeyState(&quot;LWin&quot;, &quot;P&quot;) || GetKeyState(&quot;RWin&quot;, &quot;P&quot;))
		win := 1, HK := &quot;#&quot; HK 
	Instr(HK, &quot;#&quot;) &amp;&amp; (str .= &quot;Win + &quot;)
	Instr(HK, &quot;^&quot;) &amp;&amp; (str .= &quot;Ctrl + &quot;)
	Instr(HK, &quot;+&quot;) &amp;&amp; (str .= &quot;Shift + &quot;)
	Instr(HK, &quot;!&quot;) &amp;&amp; (str .= &quot;Alt + &quot;)
	RegExMatch(HK, &quot;S)([\^\+!#]*)(.*?$)&quot;, K)  
	If (!p2 &amp;&amp; K2 != &quot;&quot;)
		Return
	text := str Format(&quot;{:U}&quot;, K2)
	GuiControl, , Text%Control%, % text
	If !Data[Control]
		Data[Control] := {}
	Data[Control].TXT := text
	If (GetKeyVK(K2) = &quot;0&quot;)
		Data[Control].HK := &quot;&quot;
	Else 
		Data[Control].HK := K1 . Format(&quot;vk{:X}&quot;, GetKeyVK(K2))
	GuiControl, Focus, % Control
	; ToolTip % Data[Control].HK  
}
 

GuiClose() {
    ExitApp
} 
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sun, 14 Aug 2022 20:26:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=154396#p154396</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: HotKey как сохранить сочетание клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=154382#p154382</link>
			<description><![CDATA[<p>Спасибо, точно.<br />А в остальном как код на сохранение?, правильный, или можно правильней сделать?</p><p>И подскажите, почему не могу назначить клавишу Win?</p>]]></description>
			<author><![CDATA[null@example.com (Logonius)]]></author>
			<pubDate>Sat, 13 Aug 2022 11:29:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=154382#p154382</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: HotKey как сохранить сочетание клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=154381#p154381</link>
			<description><![CDATA[<p>У Вас окно создаётся при каждом нажатии на горячую клавишу. В каждом новом окне будут элементы управления, проассоциированные с одной и той же переменной. Естественно скрипт ругнётся &quot;одна и та же переменная не может быть использована более чем в одном элементе управления&quot;. Неправильно каждый раз создавать новое окно. Его нужно сделать заранее, а при нажатии горячей клавиши его следует показывать, либо делать видимым, но не создавать.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sat, 13 Aug 2022 10:46:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=154381#p154381</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: HotKey как сохранить сочетание клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=154379#p154379</link>
			<description><![CDATA[<p>Добавил в начало кода</p><div class="codebox"><pre><code>
IniRead, Key, %Patch%, Main, Key1
GuiControl,, key, %key%
gosub OK
</code></pre></div><p>И все заработало, на сколько правильно я сделал?<br />Если можно более правильный результат.<br />Полный код..</p><div class="codebox"><pre><code>
Del
</code></pre></div><br /><p>И подскажите как убрать ошибку, которая возникает после повторного нажатия сочетания чтоб появилось GUI окно.<br /><span class="postimg"><img src="https://i.imgur.com/EphdHA1.png" alt="https://i.imgur.com/EphdHA1.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (Logonius)]]></author>
			<pubDate>Sat, 13 Aug 2022 08:21:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=154379#p154379</guid>
		</item>
		<item>
			<title><![CDATA[AHK: HotKey как сохранить сочетание клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=154378#p154378</link>
			<description><![CDATA[<p>Добрый день.<br />Написал код, скину командой с одной кнопкой.<br /></p><div class="codebox"><pre><code>
Del
</code></pre></div><p>Как я написал и как я понял, что я написал. При запуске и при нажатии Ctrl+Home появляется GUI окно куда я ввожу сочетание клавиш, при нажатии ОК, оно сохраняется в ini файл сочетание клавиш, в начале кода написал чтоб он считывал с ini файла сочетание.</p><p>Внизу кода есть метка &quot;Activate&quot;, так вот, если назначить клавишу и воспроизвести ее тут же, то все работает, если перезапустить программу, то сочетание уже не работает, если нажать Ctrl+Home, то видно, что сочетание прочитано и добавлена, но метка Activate не работает.</p><p>Цель, чтоб при сочетании клавиш CTRL+Home(или любые другие), выпало окно, я назначил клавиши, они сохранились, и при следующем запуске утилиты, без всяких окно и т.д. утилита начала работать с сохранёнными клавишами в метке &quot;Activate&quot; &quot;Activate2&quot; и т.д.</p><p>Я подозреваю что я не туда добавил считывание ini файла, но я так и не понял куда его сунуть.</p>]]></description>
			<author><![CDATA[null@example.com (Logonius)]]></author>
			<pubDate>Sat, 13 Aug 2022 07:57:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=154378#p154378</guid>
		</item>
	</channel>
</rss>
