<?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>https://forum.script-coding.com/viewtopic.php?id=14781</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14781&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Отключение клавиатуры для оного приложения».]]></description>
		<lastBuildDate>Thu, 16 May 2019 10:05:54 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134365#p134365</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (SHOX)]]></author>
			<pubDate>Thu, 16 May 2019 10:05:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134365#p134365</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134359#p134359</link>
			<description><![CDATA[<p>Кнопка в переменной toggleKey (сейчас F1):<br /></p><div class="codebox"><pre><code>window := &quot;ahk_class Notepad&quot;
toggleKey := &quot;F1&quot;

toggle := []

OnExit(Func(&quot;KeyboardHook&quot;).Bind(false))
handler := Func(&quot;ToggleKeyboardBlock&quot;).Bind(toggle)
Hotkey, % &quot;$&quot; . toggleKey, % handler, On

Loop {
   WinWaitActive, % window
   ( !toggle[1] &amp;&amp; KeyboardHook(true) )
   WinWaitNotActive, % window
   ( !toggle[1] &amp;&amp; KeyboardHook(false) )
}
Return

ToggleKeyboardBlock(toggle) {
   global window
   toggle[1] := !toggle[1]
   SoundBeep toggle[1] ? 900 : 600
   if WinActive(window)
      KeyboardHook( toggle[1] ? false : true )
}
   
KeyboardHook(set) {
   static hHook
   if !set
      (hHook &amp;&amp; DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHook) &amp;&amp; hHook := &quot;&quot;)
   else
      hHook := DllCall(&quot;SetWindowsHookEx&quot;, Int, WH_KEYBOARD_LL := 13
                                         , Ptr, RegisterCallback(&quot;LowLevelKeyboardProc&quot;, &quot;Fast&quot;)
                                         , Ptr, DllCall(&quot;GetModuleHandle&quot;, UInt, 0, Ptr)
                                         , UInt, 0, Ptr)
}

LowLevelKeyboardProc(nCode, wParam, lParam)
{
   global toggleKey
   static vkToggle
   ( !vkToggle &amp;&amp; vkToggle := GetKeyVK(toggleKey) )
   vk := NumGet(lParam + 0, &quot;UInt&quot;)
   Return vk != vkToggle ? 1 : DllCall(&quot;CallNextHookEx&quot;, Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
}</code></pre></div><p>Изначально блокировка включена.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 15 May 2019 23:48:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134359#p134359</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134356#p134356</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Спасибо! Работает! Но не помешало бы иметь возможность отключать&nbsp; скрипт кнопкой возможно? А так спасибо! Работает как я и хотел))</p>]]></description>
			<author><![CDATA[null@example.com (SHOX)]]></author>
			<pubDate>Wed, 15 May 2019 23:03:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134356#p134356</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134348#p134348</link>
			<description><![CDATA[<p>Для блокнота можно так:<br /></p><div class="codebox"><pre><code>window := &quot;ahk_class Notepad&quot;

OnExit(Func(&quot;KeyboardHook&quot;).Bind(false))

Loop {
   WinWaitActive, % window
   KeyboardHook(true)
   WinWaitNotActive, % window
   KeyboardHook(false)
}
   
KeyboardHook(set) {
   static hHook
   if !set
      (hHook &amp;&amp; DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHook) &amp;&amp; hHook := &quot;&quot;)
   else
      hHook := DllCall(&quot;SetWindowsHookEx&quot;, Int, WH_KEYBOARD_LL := 13
                                         , Ptr, RegisterCallback(&quot;LowLevelKeyboardProc&quot;, &quot;Fast&quot;)
                                         , Ptr, DllCall(&quot;GetModuleHandle&quot;, UInt, 0, Ptr)
                                         , UInt, 0, Ptr)
}

LowLevelKeyboardProc(nCode, wParam, lParam)
{
   Return 1
}</code></pre></div><p>При активности блокнота клавиатура блокируется, при неактивности или завершении скрипта — разблокируется.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 15 May 2019 22:24:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134348#p134348</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134346#p134346</link>
			<description><![CDATA[<p><strong>stealzy</strong> <br />Спасибо большое! это то что нужно!<br />Единственно хотелось бы что бы данный скрипт можно было как то отключить одной кнопкой.. Это возможно сделать?</p>]]></description>
			<author><![CDATA[null@example.com (SHOX)]]></author>
			<pubDate>Wed, 15 May 2019 22:15:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134346#p134346</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134344#p134344</link>
			<description><![CDATA[<p>Вам ведь нужно чтобы это включалось когда окно активно, значит нужно еще поставить оконный хук, который будет управлять состоянием клавы.<br />Предлагаю вам более простой подход:<br /></p><div class="codebox"><pre><code>
#If WinActive(&quot;ahk_class Notepad&quot;)
F1:: KeyBlockOn := !KeyBlockOn
#If WinActive(&quot;ahk_class Notepad&quot;) and KeyBlockOn
*q::
*w::
*e::
*r::
*t::
*y::
; добавить по вкусу
	Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Wed, 15 May 2019 21:36:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134344#p134344</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134343#p134343</link>
			<description><![CDATA[<p>Вот скрипт </p><div class="codebox"><pre><code>OnExit, Exit
hHookMouse := DllCall(&quot;SetWindowsHookEx&quot;
   , Int, WH_MOUSE_LL := 14
   , Ptr, RegisterCallback(&quot;LowLevelMouseProc&quot;, &quot;Fast&quot;)
   , Ptr, DllCall(&quot;GetModuleHandle&quot;, UInt, 0, Ptr)
   , UInt, 0, Ptr)
   
hHookKeybd := DllCall(&quot;SetWindowsHookEx&quot;
   , Int, WH_KEYBOARD_LL := 13
   , Ptr, RegisterCallback(&quot;LowLevelKeyboardProc&quot;, &quot;Fast&quot;)
   , Ptr, DllCall(&quot;GetModuleHandle&quot;, UInt, 0, Ptr)
   , UInt, 0, Ptr)
   
Sleep 5000
DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookMouse), hHookMouse := &quot;&quot;
DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookKeybd), hHookKeybd := &quot;&quot;
Return

Exit:
   (hHookMouse &amp;&amp; DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookMouse))
   (hHookKeybd &amp;&amp; DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookKeybd))
   ExitApp

LowLevelMouseProc(nCode, wParam, lParam)
{
   Return 1
}

LowLevelKeyboardProc(nCode, wParam, lParam)
{
   Return 1
}</code></pre></div><p> он работает вроде как надо но не постоянно. Моих знаний не хватает что-бы изменить его так что-бы на кнопку включался и на кнопку отключался...<br />Подскажите люди добрые как это реализовать..</p>]]></description>
			<author><![CDATA[null@example.com (SHOX)]]></author>
			<pubDate>Wed, 15 May 2019 21:20:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134343#p134343</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134342#p134342</link>
			<description><![CDATA[<p>Да, перед тем как просить помощи тут я читал&nbsp; про blockinput.&nbsp; Как я понял он отключает и клавиатуру и&nbsp; мышь мне бы желательно только клавиатуру. Так возможно? Ну или если по нажатию кнопки можно будет вернуть работоспособность клавиатуры и мышки то тоже пойдет. <strong>belyankin12</strong></p>]]></description>
			<author><![CDATA[null@example.com (SHOX)]]></author>
			<pubDate>Wed, 15 May 2019 20:06:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134342#p134342</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134338#p134338</link>
			<description><![CDATA[<p>Ifwinactive и blockinput то что вам нужно.</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Wed, 15 May 2019 17:35:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134338#p134338</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Отключение клавиатуры для оного приложения]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134337#p134337</link>
			<description><![CDATA[<p>Здравствуйте.<br />Подскажите пожалуйста как отключить ввод с клавиатуры для одного конкретного приложения? При этом что бы во всем остальном ПК клавиатура работала. <br />Возможно ли так сделать?</p>]]></description>
			<author><![CDATA[null@example.com (SHOX)]]></author>
			<pubDate>Wed, 15 May 2019 16:23:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134337#p134337</guid>
		</item>
	</channel>
</rss>
