<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK v2: InputHook()]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=18454&amp;type=atom" />
	<updated>2025-12-07T10:09:17Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=18454</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: InputHook()]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162954#p162954" />
			<content type="html"><![CDATA[<p>Ошибка возникает из-за того, что ИИ смешал синтаксис JavaScript и AutoHotkey v2.</p><p>В AutoHotkey v2 стрелочная функция =&gt; ожидает одно выражение, а не блок кода в фигурных скобках {...}. Когда интерпретатор AHK видит { сразу после =&gt;, он думает, что вы пытаетесь создать Объект (Object Literal), и поэтому требует пары &quot;ключ: значение&quot; (propertyname:), а находит MsgBox.</p><p>Кроме того, ИИ выдумал метод .On(). У объекта InputHook в AHK v2 нет метода On. Для назначения событий используются свойства (например, OnKeyDown).</p><div class="codebox"><pre><code>#Requires AutoHotkey v2.0

MsgBox &quot;Версия: &quot; A_AhkVersion

ih := InputHook()
; Важно: включаем уведомления (N) для всех клавиш, иначе событие не сработает
ih.KeyOpt(&quot;{All}&quot;, &quot;N&quot;)

; Назначаем функцию-обработчик по имени (без скобок вызова)
ih.OnKeyDown := MyKeyDownFunc

ih.Start()

; --- Отдельная функция для обработки нажатия ---
MyKeyDownFunc(ihObj, vk, sc) {
    MsgBox(&quot;Нажата клавиша vk: &quot; vk)
    ihObj.Stop() ; Останавливаем хук после первого нажатия
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[bilolbi]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40632</uri>
			</author>
			<updated>2025-12-07T10:09:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162954#p162954</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: InputHook()]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162499#p162499" />
			<content type="html"><![CDATA[<p>InputHook тут не при чём вообще. Стрелочные функции в AHK v2.0 не поддерживают фигурные скобки, а так же многострочные выражения. Грок наверно крутой (не пользуюсь для кода), но писать код нейросетями без понимания — не лучшая затея.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2025-05-30T21:20:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162499#p162499</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: InputHook()]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162498#p162498" />
			<content type="html"><![CDATA[<p>Пожалуй, не актуально. Grok предложил рабочий вариант без InputHook(). И вообще он лучше остальных ИИ пишет код.</p>]]></content>
			<author>
				<name><![CDATA[1srafel]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=43566</uri>
			</author>
			<updated>2025-05-30T19:05:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162498#p162498</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK v2: InputHook()]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162497#p162497" />
			<content type="html"><![CDATA[<p>Пытался составить код с ИИ для работы одного функционала с InputHook(). В итоге после ошибок на моей стороне, ИИ дал этот фрагмент для проверки того, что InputHook() у меня вообще работает:</p><div class="codebox"><pre><code>#Requires AutoHotkey v2.0

MsgBox &quot;Версия: &quot; A_AhkVersion

ih := InputHook()
ih.On(&quot;KeyDown&quot;, (ihObj, vk, sc) =&gt; {
    MsgBox(&quot;Нажата клавиша vk: &quot; vk)
    ih.Stop()
})
ih.Start()</code></pre></div><p>Но после запуска я всегда получаю ошибку:</p><div class="codebox"><pre><code>Error: Missing &quot;propertyname:&quot; in object literal.

	005: ih := InputHook()
	006: {
▶	006: Return  { MsgBox(&quot;Нажата клавиша vk: &quot; vk) ih.Stop() }</code></pre></div><p>Версия v2 последняя. В чем может быть дело?</p>]]></content>
			<author>
				<name><![CDATA[1srafel]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=43566</uri>
			</author>
			<updated>2025-05-30T18:17:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162497#p162497</id>
		</entry>
</feed>
