<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Проверка выполнения SendInput]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=13586&amp;type=atom" />
	<updated>2019-09-28T18:55:52Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=13586</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=136204#p136204" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong><br />Доброго времени. Спустя полтора года понадобилось снова решить проблему, наткнулся на эту тему, и по началу даже не признал что я автор, сидел, читал с интересом <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Почему-то я вам не ответил тогда, поэтому хочу закрыть гештальт. Не в надежде на помощь, а ради завершенности темы, вдруг у кого-то будет похожая проблема. </p><p>- ControlFocus здесь не поможет, потому что загрузку самого окна то я могу определить, а когда его содержимое подгрузится - нет<br />- Переменная A_CaretX не помогла. Каретка отслеживается в блокноте, но не хочет этого делать в Google Сhrome и UWP приложениях <br />- Sleep я сделал в первую очередь, но это решение на авось, потому что скорость загрузки содержимого окна разное, а может и не загрузиться вовсе. </p><p>В итоге я остановился на таком костыле:<br />Отправляю в окно тестовое слово &gt; Crtl+A &gt; Копирую его в буфер обмена <br />Если слово появилось в буфере &gt; Разрешаю выполнение скрипта<br />Если слово в буфере не появилось &gt; Повторяю цикл</p>]]></content>
			<author>
				<name><![CDATA[pontifex91]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39172</uri>
			</author>
			<updated>2019-09-28T18:55:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=136204#p136204</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124383#p124383" />
			<content type="html"><![CDATA[<p>ControlFocus я предлагал чтобы определить что &quot;окно загружено&quot;. Команда возвращает ErrorLevel.<br />С UWP не сталкивался, попробуйте тогда A_CaretX, когда каретка в поле ввода в этой переменной содержится ее координата. If A_CaretX {...}.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2018-04-01T18:27:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124383#p124383</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124381#p124381" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>KusochekDobra пишет:</cite><blockquote><p>Вам подсказали как действовать, Вы не поняли. Вам пояснили конкретней, Вы сделали опять как было и утверждаете, что не работает. Как Вам тогда помочь, если Вы об этой помощи просите, но советов не читаете, или читаете &quot;по своему&quot;?</p><p>Назовите программу, которой пользуетесь.</p></blockquote></div><p>Да любое UWP приложение. Хоть сам Windows Store, например. Окно ввода данных аккаунта. <br />Что именно я не понял? ControlFocus - нашел. Отправку текста ControlSetText - сделал. Это работает с блокнотом и остальным софтом. С Windows Store и другими UWP - не работает. </p><div class="quotebox"><cite>KusochekDobra пишет:</cite><blockquote><p>Попробуйте так же в своём примере добавить задержку, например:</p></blockquote></div><div class="quotebox"><cite>pontifex91 пишет:</cite><blockquote><p>Таймер не подойдет, потому что юзер может нарушить последовательность, и следующие данные будут введены не туда, куда нужно.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[pontifex91]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39172</uri>
			</author>
			<updated>2018-04-01T17:44:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124381#p124381</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124379#p124379" />
			<content type="html"><![CDATA[<p>Вам подсказали как действовать, Вы не поняли. Вам пояснили конкретней, Вы сделали опять как было и утверждаете, что не работает. Как Вам тогда помочь, если Вы об этой помощи просите, но советов не читаете, или читаете &quot;по своему&quot;?</p><p>Назовите программу, которой пользуетесь. Попробуйте так же в своём примере добавить задержку, например:<br /></p><div class="codebox"><pre><code>
IfWinActive, ahk_class ApplicationFrameWindow
  {
	Sleep, 1000
	SendInput MyText
  }
  else
  MsgBox Error
</code></pre></div><p>Должно обязательно помочь. Если большая задержка критична, уменьшайте её значение до приемлемого.</p>]]></content>
			<author>
				<name><![CDATA[KusochekDobra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33846</uri>
			</author>
			<updated>2018-04-01T16:37:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124379#p124379</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124371#p124371" />
			<content type="html"><![CDATA[<p><strong>KusochekDobra</strong><br />ок, я попробовал - это сработало в блокноте, как с ahk_class, так и с ahk_exe</p><div class="codebox"><pre><code>ControlFocus, edit1
text := &quot;My text test&quot;
ControlSetText, edit1, %text%, ahk_class Notepad</code></pre></div><p>и даже без указания ControlFocus и ClassNN<br /></p><div class="codebox"><pre><code>text := &quot;My text test&quot;
ControlSetText, , %text%, ahk_class Notepad</code></pre></div><p>но это не работает в нужной программе</p><p>ни с ahk_class, ни с ahk_exe <br /></p><div class="codebox"><pre><code>ControlFocus, ApplicationFrameInputSinkWindow1
text := &quot;My text test&quot;
ControlSetText, ApplicationFrameInputSinkWindow1, %text%, ahk_class ApplicationFrameWindow</code></pre></div><p>я может что-то упустил, конечно, но сканер показывает именно эти параметры<br />поэтому я пользуюсь этим вариантом:</p><div class="codebox"><pre><code>
IfWinActive, ahk_class ApplicationFrameWindow
  {
	SendInput MyText
  }
  else
  MsgBox Error
</code></pre></div><p>Но минус в том, что он может отправлять данные &quot;в никуда&quot;, он не определяет когда это окно загружено полностью, и какое это окно конкретно.<br />И для того, чтобы мне ввести следующие данные, скрипту нужно сначала убедиться что первые данные были введены.</p><p>Таймер не подойдет, потому что юзер может нарушить последовательность, и следующие данные будут введены не туда, куда нужно.</p>]]></content>
			<author>
				<name><![CDATA[pontifex91]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39172</uri>
			</author>
			<updated>2018-04-01T16:11:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124371#p124371</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124370#p124370" />
			<content type="html"><![CDATA[<p>Вы, неправильно поняли предложенное.</p><p>Текст получает элемент окна, называемый &quot;контрол&quot;. Найдите в окне тот, в который собираетесь ввести текст и опишите поведение ввода в сценарии, сообщая нужному окну фокус этого контрола используя &quot;ControlFocus&quot; и отправляя текст посредством &quot;ControlSetText&quot;.</p>]]></content>
			<author>
				<name><![CDATA[KusochekDobra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33846</uri>
			</author>
			<updated>2018-04-01T14:39:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124370#p124370</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124369#p124369" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong> они не сканируются, во всех окнах одинаковый класс, я же написал. Поэтому необходим такой костыль <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[pontifex91]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39172</uri>
			</author>
			<updated>2018-04-01T14:09:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124369#p124369</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124368#p124368" />
			<content type="html"><![CDATA[<p>Посмотрите сканером в какой контрол вы вводите.<br />ControlFocus, ControlSetText.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2018-04-01T13:14:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124368#p124368</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Проверка выполнения SendInput]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124366#p124366" />
			<content type="html"><![CDATA[<p>Здравствуйте, господа. Нужно сделать проверку, был ли введен текст в окне, и в случае если текст найден, то разрешить дальнейшее выполнение скрипта.<br />Мой скрипт вводит текст через SendInput в поле программы, но ввиду особенностей этой программы, есть риск того, что текст введется не в поле ввода, а куда то в никуда, например во время подгрузки окна. Ahk_class окон программы имеют одинаковые названия, поэтому вариант с IfWinActive не подходит, и приходится идти на такие костыли. </p><p>То есть нужно что то типо этого:<br /></p><div class="codebox"><pre><code>
SendInput, мой текст
if найден &quot;мой текст&quot;
{
	MsgBox OK
}
else 
MsgBox ERROR
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[pontifex91]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39172</uri>
			</author>
			<updated>2018-04-01T11:36:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124366#p124366</id>
		</entry>
</feed>
