<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Отправление виртуального кода клавиши]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=11469&amp;type=atom" />
	<updated>2018-09-30T11:48:29Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=11469</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128949#p128949" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Hotkey, % &quot;~Esc &amp; &quot; Name, Input</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2018-09-30T11:48:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128949#p128949</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128757#p128757" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, Задействованная в сочетании клавиша Esc не работает в отдельности, т.е. сама по себе. Как это исправить?<br /></p><div class="codebox"><pre><code>Loop % 0xFF + 0x153
	If ((Name := Name(A_Index)) != &quot;&quot;)
		Hotkey, % &quot;Esc &amp; &quot; Name, Input</code></pre></div>]]></content>
			<author>
				<name><![CDATA[becauseim]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33149</uri>
			</author>
			<updated>2018-09-17T23:45:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128757#p128757</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104419#p104419" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Попробуй закрыть условие, и класс правильно прописать.</p></blockquote></div><p>Ага, так работает. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-29T16:30:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104419#p104419</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104418#p104418" />
			<content type="html"><![CDATA[<p>А, нет, неправильно класс написал:<br /></p><div class="codebox"><pre><code>#IfWinActive, ahk_class Notepade</code></pre></div><p>Если правильно, моя работает, но печать — нет.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-29T16:29:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104418#p104418</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104417#p104417" />
			<content type="html"><![CDATA[<p>Попробуй закрыть условие, и класс правильно прописать.<br /></p><div class="codebox"><pre><code>#IfWinActive, ahk_class Notepad
^Space:: MsgBox 
#IfWinActive</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-29T16:26:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104417#p104417</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104415#p104415" />
			<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>2016-05-29T16:23:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104415#p104415</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104413#p104413" />
			<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>2016-05-29T16:20:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104413#p104413</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104411#p104411" />
			<content type="html"><![CDATA[<p>А если так:<br /></p><div class="codebox"><pre><code>#NoEnv
SetBatchLines -1
ListLines Off

Loop % 0xFF + 0x153
	If ((Name := Name(A_Index)) != &quot;&quot;)
		Hotkey, % &quot;Esc &amp; &quot; Name, Input
Return

Input() {
	Key := SubStr(A_ThisHotkey, InStr(A_ThisHotkey, &quot;&amp;&quot;) + 2)
	SendStr(GetKeyState(&quot;Shift&quot;, &quot;P&quot;) ? &quot;{&quot; Key &quot;}&quot; : Key)
	KeyWait, % (Instr(Key, &quot;Wheel&quot;) ? &quot;&quot; : Key)
}

Name(I) {
	Static Names := {}
	Code := Format((I &gt; 0xFF ? &quot;sc&quot; : &quot;vk&quot;) &quot;{:X}&quot;, I - (I &gt; 0xFF ? 0xFF : 0))
	If Names[Name := GetKeyName(Code)]
		Return
	Names[Name] := 1, Chr := StrLen(Name) = 1 &amp;&amp; !Instr(&quot;1234567890-=&quot;, Name)
	Return Chr ? (Instr(Code, &quot;sc&quot;) ? &quot;&quot; : Code) : (Instr(Name, &quot;Shift&quot;) ? &quot;&quot; : Name)
}

SendStr(Str) {  
	ControlGetFocus, Ctrl, % &quot;ahk_id&quot; WinExist(&quot;A&quot;)
	Loop, Parse, Str
		PostMessage, 0x102, Ord(A_LoopField), 1, %Ctrl%   ;  WM_CHAR
}

#IfWinActive, ahk_class Notepade
^Space:: MsgBox</code></pre></div><p>?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-29T16:03:39Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104411#p104411</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104377#p104377" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, спасибо, все получилось!</p>]]></content>
			<author>
				<name><![CDATA[becauseim]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33149</uri>
			</author>
			<updated>2016-05-29T08:22:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104377#p104377</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104376#p104376" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>becauseim пишет:</cite><blockquote><p>Но это мелочи, можно привыкнуть.</p></blockquote></div><p>Или тут просто фигурные скобки переставить:</p><div class="codebox"><pre><code>SendStr(GetKeyState(&quot;Shift&quot;, &quot;P&quot;) ? &quot;{&quot; Key &quot;}&quot; : Key)</code></pre></div><div class="quotebox"><cite>becauseim пишет:</cite><blockquote><p>при расположении сценария в конце файла он не работает</p></blockquote></div><p>Тут ещё проще, тут же сразу идёт Return, то есть то что до него </p><div class="codebox"><pre><code>Loop % 0xFF + 0x153
	If ((Name := Name(A_Index)) != &quot;&quot;)
		Hotkey, % &quot;Esc &amp; &quot; Name, Input</code></pre></div><p>надо поместить до своих циклов, вверху, то что называют в справке &quot;секция автовыполнения&quot;, то что после Return поместить после циклов.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-29T08:06:52Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104376#p104376</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104375#p104375" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, последний вариант работает идеально, то, что нужно! Правда, например, я больше перечисляю отправляиваемые клавиши, нежели задаю горячие, и, наверное, было бы удобнее поменять местами условия, при нажатии на Esc и Shift+Esc. Но это мелочи, можно привыкнуть.</p><p>Более всего для меня вновь затруднительно разместить сценарий в одном файле с другими, т.к. при расположении сценария в конце файла он не работает, а в начале - предотвращает отображение GUI и, например, TrayMenu. Я уже несколько раз интересовался по поводу этого вопроса, однако для меня он по-прежнему остался открытым, т.к. даже после прочтения справки мне не ясно, существует ли способ, который полностью разделяет сценарии для предотвращения воздействия друг на друга или же это безвыходная ситуация, когда единственным решением может быть разделение на два файла.</p>]]></content>
			<author>
				<name><![CDATA[becauseim]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33149</uri>
			</author>
			<updated>2016-05-29T07:58:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104375#p104375</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104374#p104374" />
			<content type="html"><![CDATA[<p>Кстати SendInput подводит например в случае с Escape &amp; LWin, и запускает при печати Win+L. Потому лучше отправлять через WM_CHAR, либо печатать после KeyWait.<br /></p><div class="codebox"><pre><code>#NoEnv
SetBatchLines -1
ListLines Off

Loop % 0xFF + 0x153
	If ((Name := Name(A_Index)) != &quot;&quot;)
		Hotkey, % &quot;Esc &amp; &quot; Name, Input
Return

Input() {
	Key := SubStr(A_ThisHotkey, InStr(A_ThisHotkey, &quot;&amp;&quot;) + 2)
	SendStr(GetKeyState(&quot;Shift&quot;, &quot;P&quot;) ? &quot;{&quot; Key &quot;}&quot; : Key)
	KeyWait, % (Instr(Key, &quot;Wheel&quot;) ? &quot;&quot; : Key)
}

Name(I) {
	Static Names := {}
	Code := Format((I &gt; 0xFF ? &quot;sc&quot; : &quot;vk&quot;) &quot;{:X}&quot;, I - (I &gt; 0xFF ? 0xFF : 0))
	If Names[Name := GetKeyName(Code)]
		Return
	Names[Name] := 1, Chr := StrLen(Name) = 1 &amp;&amp; !Instr(&quot;1234567890-=&quot;, Name)
	Return Chr ? (Instr(Code, &quot;sc&quot;) ? &quot;&quot; : Code) : (Instr(Name, &quot;Shift&quot;) ? &quot;&quot; : Name)
}

SendStr(Str) {  
	ControlGetFocus, Ctrl, % &quot;ahk_id&quot; WinExist(&quot;A&quot;)
	Loop, Parse, Str
		PostMessage, 0x102, Ord(A_LoopField), 1, %Ctrl%   ;  WM_CHAR
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-28T22:57:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104374#p104374</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104373#p104373" />
			<content type="html"><![CDATA[<p>Ещё так можно назначить все кнопки, включая мышь.<br /></p><div class="codebox"><pre><code>#NoEnv 
SetBatchLines -1
ListLines Off

Loop % 0xFF + 0xFFF
	If ((Name := Name(A_Index)) != &quot;&quot;)
		Hotkey, % &quot;Esc &amp; &quot; Name, Input
Return

Input() {
	Key := SubStr(A_ThisHotkey, InStr(A_ThisHotkey, &quot;&amp;&quot;) + 2)
    SendInput, % &quot;{Raw}&quot; (GetKeyState(&quot;Shift&quot;, &quot;P&quot;) ? &quot;{&quot; Key &quot;}&quot; : Key) 
	KeyWait, % (Instr(Key, &quot;Wheel&quot;) ? &quot;&quot; : Key)
}

Name(I) {
	Code := Format((I &gt; 0xFF ? &quot;sc&quot; : &quot;vk&quot;) &quot;{:X}&quot;, I - (I &gt; 0xFF ? 0xFF : 0))
	Name := GetKeyName(Code), Chr := StrLen(Name) = 1 &amp;&amp; !Instr(&quot;1234567890-=&quot;, Name)
	Return Chr ? (Instr(Code, &quot;sc&quot;) ? &quot;&quot; : Code) : (Instr(Name, &quot;Shift&quot;) ? &quot;&quot; : Name)
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-28T22:11:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104373#p104373</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104372#p104372" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>По моему надёжнее и проще так</p></blockquote></div><p>Ну, это уже детали. Можно через RegEx в одно выражение. Я о принципе определения интересовался, работает, или нет.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-05-28T19:26:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104372#p104372</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправление виртуального кода клавиши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=104371#p104371" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Так я пока только про буквенные говорю.</p></blockquote></div><p>Я думал мы говорим про сценарий который выдаёт вк коды всех тех клавиш, которые нуждаются в этом для независимости от раскладки, и именах остальных.</p><div class="quotebox"><cite>becauseim пишет:</cite><blockquote><p>Иными словами, чтобы у буквенных символов отправлялись виртуальные коды, а у всех остальных - названия, которые одинакого воспринимаются при любой раскладке.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-05-28T19:21:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=104371#p104371</id>
		</entry>
</feed>
