<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15858&amp;type=atom" />
	<updated>2020-12-03T14:13:46Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=15858</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143867#p143867" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexiii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41243</uri>
			</author>
			<updated>2020-12-03T14:13:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143867#p143867</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143851#p143851" />
			<content type="html"><![CDATA[<p>У меня всё проходит.<br /></p><div class="codebox"><pre><code>f6::
settitlematchmode 2
ControlSend, ahk_parent, {f12}, OBS ahk_exe obs64.exe</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-03T00:48:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143851#p143851</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143849#p143849" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexiii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41243</uri>
			</author>
			<updated>2020-12-02T23:15:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143849#p143849</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143848#p143848" />
			<content type="html"><![CDATA[<p>Потому что это программа для стриминга игр или приложений (работа в видео редакторе, например), а там большинство коротких шорт-катов уже занята, поэтому беру такие. Но даже простые типа F12, не проходят.</p>]]></content>
			<author>
				<name><![CDATA[alexiii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41243</uri>
			</author>
			<updated>2020-12-02T23:11:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143848#p143848</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143846#p143846" />
			<content type="html"><![CDATA[<p>А зачем вообще слать такие мудреные шорткаты?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-02T22:05:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143846#p143846</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143844#p143844" />
			<content type="html"><![CDATA[<p>Попробовал скачать программу, установил. С клвиатуры Alt-T работает, а из&nbsp; AutoHotkey - нет. Хотя какие-то мелькания идут с таким кодом при неактивном окне:<br />ControlSend, , {LAlt Down}{T}{LAlt Up}, ahk_class Qt5QWindowIcon<br />А при активном даже работает. Что-то не хочет программа подчиняться AutoHotkey.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2020-12-02T20:09:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143844#p143844</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143843#p143843" />
			<content type="html"><![CDATA[<p><strong>alexiii</strong></p><p>OBS не установлен, поэтому проверить свои догадки не могу. Скорее всего нужно отправлять в функцию &#039;SendKeyOBS&#039; некую клавишу (в кавычках). Но какую - без понятия.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-12-02T19:52:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143843#p143843</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143840#p143840" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexiii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41243</uri>
			</author>
			<updated>2020-12-02T18:08:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143840#p143840</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143839#p143839" />
			<content type="html"><![CDATA[<p>Что такое OBS?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2020-12-02T17:53:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143839#p143839</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143838#p143838" />
			<content type="html"><![CDATA[<p><strong>ypppu</strong> Да, я пробовал (писал об этом выше). Не работает именно с OBS, на зарубежных форумах смотрел варианты обхода, вот и написал один их пользователей OBS как работает у него, но пока не могу осмыслить всю конструкцию. Где тут клавишу назначить и для чего другие команды в коде выше?</p>]]></content>
			<author>
				<name><![CDATA[alexiii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41243</uri>
			</author>
			<updated>2020-12-02T17:28:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143838#p143838</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143837#p143837" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Написал скрипт, который почти устраивает по функционалу, но он работает только при активном окне программы</p></blockquote></div><p> Вместо <em>Send</em> можно использовать <em>ControlSend</em>. Это более сложная команда, но по ней есть документация и куча примеров на нашем форуме.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2020-12-02T17:05:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143837#p143837</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143833#p143833" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexiii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41243</uri>
			</author>
			<updated>2020-12-02T15:01:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143833#p143833</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143805#p143805" />
			<content type="html"><![CDATA[<p><strong>ypppu</strong><br />OFF: А должен был?</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-12-01T21:28:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143805#p143805</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143784#p143784" />
			<content type="html"><![CDATA[<p>OFF: Заметил, что ник <strong>alexi</strong> ещё не занят. <img src="//forum.script-coding.com/img/smilies/roll.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>2020-12-01T15:32:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143784#p143784</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: периодическ проверка цифрового значения в файле и запуск shortkey]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=143781#p143781" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexiii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41243</uri>
			</author>
			<updated>2020-12-01T14:53:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=143781#p143781</id>
		</entry>
</feed>
