<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9815&amp;type=atom" />
	<updated>2014-07-19T10:19:57Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9815</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84905#p84905" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Очевидно, да. Зачем вызывать LowLevelKeyboardProc? И причём тут всё таки - ExitApp?</p></blockquote></div><p> <br />1. Согласен что не понимаю<br />2. Да я её не вызываю... мысли в слух <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /><br />3. Что бы завершить работу.</p><p>И так...</p><p>Функция <strong>LowLevelKeyboardProc</strong> должна сообщить две вещи:<br />- клавиша нажата и scCode помещён в глоб. переменную<br />- установить флаг отработки, перед RETURN</p><p>Основной модуль должен.<br />1. Запустить таймер<br />2. Произвести иницализацию-перехват </p><div class="codebox"><pre><code>   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, &quot;Ptr&quot;)
      , UInt, 0, &quot;Ptr&quot;)
Return</code></pre></div><p>3. По флагу остановить таймер и выполнить </p><div class="codebox"><pre><code>DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookKeybd)</code></pre></div><p> <br /><strong>Теперь верно?</strong></p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2014-07-19T10:19:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84905#p84905</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84904#p84904" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Может я не верно понимаю алгоритм скрипта</code></pre></div><p>Очевидно, да. Зачем вызывать LowLevelKeyboardProc? И причём тут всё таки - ExitApp?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-07-19T07:10:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84904#p84904</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84903#p84903" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Причём тут вообще - <strong>ExitApp</strong>?</p></blockquote></div><p> мне нужно вызвать данную <em>&quot;фигню&quot;</em> один раз, а с ошибками это позже буду разбираться отдельно.<br />Может я не верно понимаю алгоритм скрипта, но как вызывать функцию <strong>LowLevelKeyboardProc(nCode, wParam, lParam)</strong>, так как не понятно что ей давать на вход, т.к. она функция Callback(обратного хода), такое часто применяют, но зачем это здесь не понятно.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2014-07-19T06:55:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84903#p84903</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84902#p84902" />
			<content type="html"><![CDATA[<p>Ещё забыл сказать, что в этом коде получение scCode неправильное, для <span class="bbu">некоторых</span> клавиш.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-07-19T06:37:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84902#p84902</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84901#p84901" />
			<content type="html"><![CDATA[<p>Причём тут вообще - <strong>ExitApp</strong>?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-07-19T06:25:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84901#p84901</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84900#p84900" />
			<content type="html"><![CDATA[<p>Блин - приколисты, да я что то не узрел в коде данных точек, как и готовой функции, хотя без <strong>ExitApp</strong> скрипт не хочет завершаться.<br />Сергей, цитировать меня из другого топика это не честно, ты там тоже высказался весьма неоднозначно <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2014-07-19T06:00:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84900#p84900</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84894#p84894" />
			<content type="html"><![CDATA[<p>OFF:<br />Да Я скорее помогаю (далеко не начинающим скриптописателям, уже ведь скоро 3 года ТС) не создавать просто так новых тем в AutoHotkey, а то этим разделом скоро даже гугль &quot;подавится&quot;. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Ну а про начинающих, тут (в сабже) конечно им доки и поиск непомогут, но вспоминая свои первые вопросы, понимаю, что для начала лучше на примере, а дальше уже видно - удочку или золотую рыбку RTFM.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-07-18T18:17:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84894#p84894</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84893#p84893" />
			<content type="html"><![CDATA[<p>OFF:<br /><strong>serzh82saratov</strong>, не подсказывай так часто. Дай возможность начинающим скриптописателям потренировать соображалку, научиться пользоваться документацией и поиском. Вообще, к хорошему быстро привыкают. <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-07-18T18:04:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84893#p84893</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84890#p84890" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Indomito пишет:</cite><blockquote><p>авторство забыл кого</p></blockquote></div><div class="quotebox"><cite>Indomito пишет:</cite><blockquote><p>Прочёл всё до конца и ничего не понял</p></blockquote></div><p><a href="http://forum.script-coding.com/viewtopic.php?pid=84882#p84882">пруф</a></p><p>Да, по этой ссылке<br /><a href="http://forum.script-coding.com/viewtopic.php?id=6350">http://forum.script-coding.com/viewtopic.php?id=6350</a> и в правду никто бы не понял, что автор <strong>teadrinker</strong>. И там же ссылка с загадочным названием &quot;Тема для обсуждения&quot;. Но ладно, это всё трудные вопросы гипер-программирования. Как и:</p><div class="quotebox"><blockquote><p>этот скрипт сделать не резидентным</p></blockquote></div><p>Что значит - не <a href="http://ru.wikipedia.org/wiki/Резидентная_программа">резидентным</a>?</p><p>------------------------------</p><p>Теперь попроще:<br /></p><div class="quotebox"><blockquote><p>Повторный вызов, на усмотрение главного/основного скрипта</p></blockquote></div><p>Так ведь ответ уже <strong>целиком</strong> в коде:<br /><strong>Включить хук</strong></p><div class="codebox"><pre><code>   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, &quot;Ptr&quot;)
      , UInt, 0, &quot;Ptr&quot;)</code></pre></div><p><strong>Выключить хук</strong></p><div class="codebox"><pre><code>DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookKeybd)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-07-18T17:21:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84890#p84890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Нужно модифицировать скрипт VkScCode64 в функцию]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84888#p84888" />
			<content type="html"><![CDATA[<p>И так есть скрипт, авторство забыл кого </p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;VkScCode64.ahk</div><div class="fancy_spoiler"><div class="codebox"><pre><code>#Persistent
  OnExit, Exit
   ToolTip
   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, &quot;Ptr&quot;)
      , UInt, 0, &quot;Ptr&quot;)
   Return

^#ESC:: 
Exit:
   DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookKeybd)
   ToolTip
ExitApp
 
LowLevelKeyboardProc(nCode, wParam, lParam)
{
   Critical
   SetFormat, Integer, H
   ToolTip, % wParam . &quot;| vkCode: &quot; . NumGet(lParam+0, 0, &quot;UInt&quot;) . &quot; scCode: &quot; . NumGet(lParam+0, 4, &quot;UInt&quot;)
      . &quot; Extended: &quot; . NumGet(lParam+0, 8, &quot;UInt&quot;) &amp; 1 . &quot; Time: &quot; . NumGet(lParam+0, 12, &quot;UInt&quot;)
   Return DllCall(&quot;CallNextHookEx&quot;, Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
}</code></pre></div></div></div><p> Правда я внёс не значительные правки.</p><br /><p><strong>Требуется</strong> вызывать данный скрипт в контексте другого, главного/основного скрипта<br />1. Мне нужно, что бы он не оставался резидентным, пока мне так и не удалось этот скрипт сделать не резидентным.<br />2. Я хочу использовать его как подпрограмму-функцию, т.е. что бы она возвращала коды нажатия VK и SC.<br />3. Повторный вызов, на усмотрение главного/основного скрипта.</p><p>Думаю всё верно изложил, надеюсь.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2014-07-18T17:01:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84888#p84888</id>
		</entry>
</feed>
