<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=15858</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15858&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: периодическ проверка цифрового значения в файле и запуск shortkey».]]></description>
		<lastBuildDate>Thu, 03 Dec 2020 14:13:46 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143867#p143867</link>
			<description><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>У меня всё проходит.<br /></p><div class="codebox"><pre><code>f6::
settitlematchmode 2
ControlSend, ahk_parent, {f12}, OBS ahk_exe obs64.exe</code></pre></div></blockquote></div><p>Да, если писать как вы предлагаете, то одиночное нажатие проходит (а комбинация нет). Спасибо! Пока переделал свой скрипт таким образом, перебиндил в игре занятые клавиши (((. Может его можно еще как-то грамотнее написать (оптимизировать)?<br /></p><div class="codebox"><pre><code>file = e:\Work\files\Counters\Count.txt
LCount =
If !FileExist(file) {
 MsgBox, 48, Error, Файл не найден. Отмена.`n`n%file%
 ExitApp
 }
FileReadLine, LCount, %file%, 1
Sleep, 500
If (LCount &gt; 30) {
 MsgBox, 48, Error, Не запущена программа!`n`n%file%
 ExitApp
 }
  
settitlematchmode 2

Loop  {
   FileReadLine, LCount, %file%, 1
   Sleep, 6000 
   }
   until LCount = 10
    Sleep, 150
	ControlSend, ahk_parent, {f6}, OBS ahk_exe obs64.exe
	Sleep, 10000
	ControlSend, ahk_parent, {f6}, OBS ahk_exe obs64.exe

Loop  {
   FileReadLine, LCount, %file%, 1
   Sleep, 6000 
   }
   until LCount = 20
    Sleep, 150
    ControlSend, ahk_parent, {f7}, OBS ahk_exe obs64.exe
	Sleep, 12000
	ControlSend, ahk_parent, {f7}, OBS ahk_exe obs64.exe
   
Loop  {
   FileReadLine, LCount, %file%, 1
   Sleep, 6000 
   }
   until LCount = 30
    Sleep, 150
    ControlSend, ahk_parent, {f8}, OBS ahk_exe obs64.exe
	Sleep, 20000
	ControlSend, ahk_parent, {f8}, OBS ahk_exe obs64.exe
ExitApp
</code></pre></div><p>И почему-то сообщения в кириллице выводятся неверно...</p>]]></description>
			<author><![CDATA[null@example.com (alexiii)]]></author>
			<pubDate>Thu, 03 Dec 2020 14:13:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143867#p143867</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143851#p143851</link>
			<description><![CDATA[<p>У меня всё проходит.<br /></p><div class="codebox"><pre><code>f6::
settitlematchmode 2
ControlSend, ahk_parent, {f12}, OBS ahk_exe obs64.exe</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 03 Dec 2020 00:48:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143851#p143851</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143849#p143849</link>
			<description><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Попробовал скачать программу, установил. С клвиатуры Alt-T работает, а из&nbsp; AutoHotkey - нет. Хотя какие-то мелькания идут с таким кодом при неактивном окне:<br />ControlSend, , {LAlt Down}{T}{LAlt Up}, ahk_class Qt5QWindowIcon<br />А при активном даже работает. Что-то не хочет программа подчиняться AutoHotkey.</p></blockquote></div><p>Вот поэтому и придумывали разные обходные пути на форумах, типа задержки нажатия и прочее, я перебрал несколько, которые нашел - не помогло. А выше код, про который написали, что помогает, но здесь уже у меня знаний не хватает понять, что там накручено, поэтому и спрашиваю у более опытных.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>
;Previously
global OBSHWND := GetOBS()

GetOBS() {
	ntmm := A_TitleMatchMode
	SetTitleMatchMode, Regex
	;use the main window title to get the ID of the main window, because that&#039;s were we want the hotkeys to go
	OBSHWND := WinExist(&quot;OBS .*[0-9]{2}\.[0-9]+\.[0-9]+ ahk_exe obs64.exe&quot;)
	SetTitleMatchMode, %ntmm% ;avoids complicating other title matches
	Return OBSHWND
}


SendKeyOBS(Key) {
	tDelay := 250 ;ms
	If OBSHWND { 
		If (WinExist(&quot;ahk_id &quot; .  OBSHWND)) { ;set&#039;s last found window 
			SetKeyDelay, 50,80 ;I experimented with various values here
			;send key to last found window
			ControlSend,ahk_parent,%key%
			ErrLvl := ErrorLevel
			If ErrLvl
				;if you aren&#039;t using dbgview for script debugging consider it -- it is extremely useful (and free)
				OutputDebug % Format(&quot;[{}][{}] ErrLvl: {}&quot;,sScript,A_ThisFunc . &quot;.&quot; . A_LineNumber, ErrLvl) . &quot; &quot;
			Sleep %tDelay% ;can&#039;t remember why this is here
		}
		OutputDebug % Format(&quot;[{}][{}] Key: {}; Err: {}; OBSHWND: {}&quot;,sScript,A_ThisFunc . &quot;.&quot; . A_LineNumber,Key,ErrLvl,OBSHWND) . &quot; &quot;
	}
	Return ;no value returned
}
</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (alexiii)]]></author>
			<pubDate>Wed, 02 Dec 2020 23:15:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143849#p143849</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143848#p143848</link>
			<description><![CDATA[<p>Потому что это программа для стриминга игр или приложений (работа в видео редакторе, например), а там большинство коротких шорт-катов уже занята, поэтому беру такие. Но даже простые типа F12, не проходят.</p>]]></description>
			<author><![CDATA[null@example.com (alexiii)]]></author>
			<pubDate>Wed, 02 Dec 2020 23:11:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143848#p143848</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143846#p143846</link>
			<description><![CDATA[<p>А зачем вообще слать такие мудреные шорткаты?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 02 Dec 2020 22:05:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143846#p143846</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143844#p143844</link>
			<description><![CDATA[<p>Попробовал скачать программу, установил. С клвиатуры Alt-T работает, а из&nbsp; AutoHotkey - нет. Хотя какие-то мелькания идут с таким кодом при неактивном окне:<br />ControlSend, , {LAlt Down}{T}{LAlt Up}, ahk_class Qt5QWindowIcon<br />А при активном даже работает. Что-то не хочет программа подчиняться AutoHotkey.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 02 Dec 2020 20:09:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143844#p143844</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143843#p143843</link>
			<description><![CDATA[<p><strong>alexiii</strong></p><p>OBS не установлен, поэтому проверить свои догадки не могу. Скорее всего нужно отправлять в функцию &#039;SendKeyOBS&#039; некую клавишу (в кавычках). Но какую - без понятия.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 02 Dec 2020 19:52:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143843#p143843</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143840#p143840</link>
			<description><![CDATA[<p><strong>ypppu</strong> программа для записи видео и стриминга. <a href="https://ru.wikipedia.org/wiki/Open_Broadcaster_Software">https://ru.wikipedia.org/wiki/Open_Broadcaster_Software</a></p>]]></description>
			<author><![CDATA[null@example.com (alexiii)]]></author>
			<pubDate>Wed, 02 Dec 2020 18:08:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143840#p143840</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143839#p143839</link>
			<description><![CDATA[<p>Что такое OBS?</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 02 Dec 2020 17:53:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143839#p143839</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143838#p143838</link>
			<description><![CDATA[<p><strong>ypppu</strong> Да, я пробовал (писал об этом выше). Не работает именно с OBS, на зарубежных форумах смотрел варианты обхода, вот и написал один их пользователей OBS как работает у него, но пока не могу осмыслить всю конструкцию. Где тут клавишу назначить и для чего другие команды в коде выше?</p>]]></description>
			<author><![CDATA[null@example.com (alexiii)]]></author>
			<pubDate>Wed, 02 Dec 2020 17:28:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143838#p143838</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143837#p143837</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Написал скрипт, который почти устраивает по функционалу, но он работает только при активном окне программы</p></blockquote></div><p> Вместо <em>Send</em> можно использовать <em>ControlSend</em>. Это более сложная команда, но по ней есть документация и куча примеров на нашем форуме.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 02 Dec 2020 17:05:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143837#p143837</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143833#p143833</link>
			<description><![CDATA[<p>Нашел похожую проблему по передаче нажатия клавиш в OBS, человек пишет, что использует ниже указанный код. Я новичок в написании скриптов и не могу понять, где в этом коде задается комбинация клавиш (клавиша), помогите гуру разобраться, пожалуйста.<br /></p><div class="codebox"><pre><code>
;Previously
global OBSHWND := GetOBS()

GetOBS() {
	ntmm := A_TitleMatchMode
	SetTitleMatchMode, Regex
	;use the main window title to get the ID of the main window, because that&#039;s were we want the hotkeys to go
	OBSHWND := WinExist(&quot;OBS .*[0-9]{2}\.[0-9]+\.[0-9]+ ahk_exe obs64.exe&quot;)
	SetTitleMatchMode, %ntmm% ;avoids complicating other title matches
	Return OBSHWND
}


SendKeyOBS(Key) {
	tDelay := 250 ;ms
	If OBSHWND { 
		If (WinExist(&quot;ahk_id &quot; .  OBSHWND)) { ;set&#039;s last found window 
			SetKeyDelay, 50,80 ;I experimented with various values here
			;send key to last found window
			ControlSend,ahk_parent,%key%
			ErrLvl := ErrorLevel
			If ErrLvl
				;if you aren&#039;t using dbgview for script debugging consider it -- it is extremely useful (and free)
				OutputDebug % Format(&quot;[{}][{}] ErrLvl: {}&quot;,sScript,A_ThisFunc . &quot;.&quot; . A_LineNumber, ErrLvl) . &quot; &quot;
			Sleep %tDelay% ;can&#039;t remember why this is here
		}
		OutputDebug % Format(&quot;[{}][{}] Key: {}; Err: {}; OBSHWND: {}&quot;,sScript,A_ThisFunc . &quot;.&quot; . A_LineNumber,Key,ErrLvl,OBSHWND) . &quot; &quot;
	}
	Return ;no value returned
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alexiii)]]></author>
			<pubDate>Wed, 02 Dec 2020 15:01:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143833#p143833</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143805#p143805</link>
			<description><![CDATA[<p><strong>ypppu</strong><br />OFF: А должен был?</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Tue, 01 Dec 2020 21:28:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143805#p143805</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143784#p143784</link>
			<description><![CDATA[<p>OFF: Заметил, что ник <strong>alexi</strong> ещё не занят. <img src="//forum.script-coding.com/img/smilies/roll.png" width="15" height="15" /> Странно.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Tue, 01 Dec 2020 15:32:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143784#p143784</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=143781#p143781</link>
			<description><![CDATA[<p>Написал скрипт, который почти устраивает по функционалу, но он работает только при активном окне программы ((((. Хотя когда я нажимаю &quot;руками&quot; те же сочетания клавиш находясь в другом активном приложении (игра), то все работает. <br /></p><div class="codebox"><pre><code>Loop  {
   FileRead, LCount, e:\Work\\files\Counters\Count.txt
   Sleep, 6000 
   }
   until LCount = 10
	Send ^!{vk47}
	Sleep, 10000
	Send ^!{vk47}

Loop  {
   FileRead, LCount, e:\Work\files\Counters\Count.txt
   Sleep, 6000 
   }
   until LCount = 20
	Send ^!{vk46}
	Sleep, 10000
	Send ^!{vk46}
   
Loop  {
   FileRead, LCount, e:\Work\files\Counters\Count.txt
   Sleep, 6000 
   }
   until LCount = 30
	Send ^!{vk54}
	Sleep, 20000
	Send ^!{vk54}</code></pre></div><p>Пробовал использовать ControlSend вместо Send, но тоже не реагирует программа (OBS). Помогите разобраться, пожалуйста!</p><div class="codebox"><pre><code>F6::ControlSend,, ^!{vk54}, ahk_class Qt5QWindowIcon </code></pre></div><p>ahk_class для OBS смотрел с помощью WinSpy.<br />Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (alexiii)]]></author>
			<pubDate>Tue, 01 Dec 2020 14:53:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=143781#p143781</guid>
		</item>
	</channel>
</rss>
