<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: ControlClick вызов скрипта из реестра]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17554&amp;type=atom" />
	<updated>2023-02-18T13:04:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=17554</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156851#p156851" />
			<content type="html"><![CDATA[<p>Придумал несколько иной способ. Проблема в том, что <strong>runasspc</strong> время от времени при запуске напоминает, что требуется лицензия и ждёт нажатия на кнопку &quot;Continue&quot;, и кроме того, он постоянно генерирует окно консоли. Получается сплошное перемигивание.<br />Я воспользовался вот такой конструкцией в основном скрипте:</p><div class="codebox"><pre><code>DllCall(&quot;RegisterShellHookWindow&quot;, Ptr, A_ScriptHwnd)
MsgNum := DllCall(&quot;RegisterWindowMessage&quot;, Str, &quot;SHELLHOOK&quot;)
OnMessage(MsgNum, &quot;ShellMessage&quot;)

Return

ShellMessage(wParam, lParam) 
{ 
    static HSHELL_WINDOWACTIVATED := 0x04
         , HSHELL_WINDOWCREATED := 0x01
         , HSHELL_WINDOWDESTROYED := 0x02
         , HSHELL_HIGHBIT := 0x8000
         , HSHELL_RUDEAPPACTIVATED := HSHELL_WINDOWACTIVATED | HSHELL_HIGHBIT | HSHELL_WINDOWCREATED | HSHELL_WINDOWDESTROYED
    
    if (wParam == HSHELL_RUDEAPPACTIVATED || wParam == HSHELL_WINDOWACTIVATED || wParam == HSHELL_WINDOWCREATED || wParam == HSHELL_WINDOWDESTROYED)
    {
        WinGet, PrName, ProcessName, % &quot;ahk_id&quot; lParam
        If InStr(PrName, &quot;go_copy&quot;)
        {
        	GoSub, Copy
        }       
    }
}</code></pre></div><p>Благодаря этому коду, можно отслеживать появляющиеся и исчезающие окна. В отличии от winwait, такой способ может работать &quot;в фоне&quot;. То-есть остальные мои функции продолжают работать как и ранее.</p><p>Далее я создал скомпилированный в exe скрипт go_copy.exe:</p><div class="codebox"><pre><code>#NoEnv
#NoTrayIcon

SendMode Input
SetWorkingDir %A_ScriptDir%
WinSet, Transparent, 0, click_to_copy
Gui, Show, NoActivate Hide, click_to_copy
Gui, Destroy

GuiClose:
ExitApp</code></pre></div><p>И повесил его на запуск при нажатии на кнопку сканера. В итоге, никаких сторонних программ не нужно. И ничего не мелькает. Визуально, происходит нажатие на кнопку сканера, и сразу происходит запуск моей функции Copy.</p>]]></content>
			<author>
				<name><![CDATA[taravasya]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33758</uri>
			</author>
			<updated>2023-02-18T13:04:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156851#p156851</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156419#p156419" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Вроде сторонней программой &quot;RunAsService&quot;</p></blockquote></div><p>Тоже&nbsp; в итоге пришёл к такому же решению. Только использовал <strong>runasspc</strong>.<br />&quot;Будущим поколениям&quot; может быть пригодится информация о том, что для того, чтобы всё заработало:<br /></p><ul><li><p>Я настроил в утилите runasspc запуск скомпилированного exe от имени своего текущего пользователя</p></li><li><p>Мой скомпилированный exe, должен запускаться от имени администратора(это надо включить в его свойствах, во вкладке совместимость)</p></li><li><p>Нельзя, чтобы в пути к этому exe были пробелы(предполагаю, что и кириллица).</p></li></ul>]]></content>
			<author>
				<name><![CDATA[taravasya]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33758</uri>
			</author>
			<updated>2023-01-16T20:34:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156419#p156419</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156405#p156405" />
			<content type="html"><![CDATA[<p>В общем у меня дома когда-то можно было включить компьютер (просто включить, не залогиниваясь пользователем), нажать кнопку на сканере, при этом запускалась спецпрограмма, которая сначала сканировала, потом скан посылала на принтер и распечатывался. Спецпрограмма вообще-то не была предназначена для запуска от имени SYSTEM, но я как-то это сделал. Вроде сторонней программой &quot;RunAsService&quot;.</p><p>Вот до кучи, завалялся у меня в архивах огрызок реестра, сам не помню для чего сохранял.<br /></p><div class="codebox"><pre><code>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\StillImage\Registered Applications]
&quot;Microsoft Word&quot;=&quot;C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE /IMG_STI /StiDevice:%1 /StiEvent:%2&quot;
&quot;Photocopier Expert Scan&quot;=&quot;C:\\Program Files\\Photocopier Expert\\photocopierexpert.exe /PROFILESCAN /StiDevice:%1 /StiEvent:%2&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2023-01-15T19:36:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156405#p156405</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156402#p156402" />
			<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>2023-01-15T17:12:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156402#p156402</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156401#p156401" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>А тут есть пример на чистом ahk:</p></blockquote></div><p>Круть. Скрипт можно запустить от любого юзера, и только в логоне будет работать хоткей? Или как должно работать?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2023-01-15T17:02:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156401#p156401</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156399#p156399" />
			<content type="html"><![CDATA[<p>А тут есть пример на чистом ahk:<br /><a href="http://forum.script-coding.com/viewtopic.php?pid=139447">http://forum.script-coding.com/viewtopic.php?pid=139447</a><br />ЗЫ Жалко, что <strong>qwerty12</strong> потерял интерес к автохотки. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />((</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2023-01-15T16:37:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156399#p156399</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156398#p156398" />
			<content type="html"><![CDATA[<p>Тут обсуждали возможные варианты взаимодействия с system:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=11778">http://forum.script-coding.com/viewtopic.php?id=11778</a></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2023-01-15T16:28:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156398#p156398</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156396#p156396" />
			<content type="html"><![CDATA[<p>Хорошо, мы сидим под юзер №2, а скрипт запущен от юзер №1. <br /><em>Значит окно скрипта видимым быть не может</em> - <span style="color: green">ДА</span><br /><em>Все процессы от юзер №1 являются замороженными</em> - <span style="color: red">НЕТ</span>. Юзер №1 вполне мог запустить проигрыватель с музыкой. И музыку будет слышно что у самого юзера №1, что на экране выбора пользователя (если заблокировать Юзер №1), что при входе в Windows из-под юзер №2.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2023-01-15T15:20:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156396#p156396</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156395#p156395" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Вроде я понятно описал.</p></blockquote></div><p>Мы говорили о том что текущий юзер №2, а скрипт запущен от №1. Значит окно скрипта видимым быть не может, и насколько понимаю все процессы от юзер №1 являются замороженными.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2023-01-15T15:07:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156395#p156395</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156394#p156394" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>taravasya пишет:</cite><blockquote><p>VASYA - это мой текущий пользователь с правами адимнистратора.</p></blockquote></div><p>IsAdmin:&nbsp; false значит что скрипт не с правами.<br />Тут понятно, интересно что напишет про скрипт из реестра.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2023-01-15T15:05:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156394#p156394</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156392#p156392" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>У меня в подписи AhkSpy, им посмотрите.</p></blockquote></div><p>Так что с пользователями и правами?</p></blockquote></div><p>Сейчас нет доступа к компьютеру со скнером.</p><p>Запустил скрипт на другом компе, AhkSpy пишет:<br /></p><div class="codebox"><pre><code>IsAdmin:  false  ▪  Is unicode:  true  ▪  User name:  VASYA  ▪  WindowBand:  ZBID_DESKTOP := 1</code></pre></div><p>VASYA - это мой текущий пользователь с правами адимнистратора.</p>]]></content>
			<author>
				<name><![CDATA[taravasya]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33758</uri>
			</author>
			<updated>2023-01-15T14:14:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156392#p156392</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156391#p156391" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Не совсем, я про то что окна программы нет, а значит и вопроса как в него кликнуть не существует.</p></blockquote></div><p>Вроде я понятно описал. С точки зрения учётки пользователя (человека) окно AHK-скрипта есть; но с точки зрения процесса, запущенного от имени SYSTEM, про существование у пользователя (человека) окна AHK-скрипта ничего неизвестно. Скрипт максимум что увидит, так это то, что существует процесс autohotkey.exe, но послать ControlClick в окно данного процесса, как этого хотел <strong>taravasya</strong>, скрипт не сможет. Потому что так Windows устроена.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2023-01-15T14:12:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156391#p156391</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156388#p156388" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>У меня в подписи AhkSpy, им посмотрите.</p></blockquote></div><p>Так что с пользователями и правами?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2023-01-15T14:03:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156388#p156388</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156387#p156387" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>taravasya пишет:</cite><blockquote><p>Похоже яндекс ничего не знает про сочетание Global container и AHK. Я тоже ))</p></blockquote></div><p><a href="http://forum.script-coding.com/viewtopic.php?pid=113561#p113561">http://forum.script-coding.com/viewtopi … 61#p113561</a><br /></p><div class="quotebox"><cite>taravasya пишет:</cite><blockquote><p>Тоже не работает. Проверял.</p></blockquote></div><p>SendLevel, 100 есть в скрипте с Send, и #InputLevel, 100 в основном?<br /></p><div class="quotebox"><cite>taravasya пишет:</cite><blockquote><p>Разве там не будет той же самой проблемы? Имеет значение, скрытое это окно или нет?</p></blockquote></div><p>В вашем случае не знаю, надо пробовать как будет в случае с ControlSetText. То что окно скрытое не должно мешать. <br />С файлом вариант конечно плохой. Можно в основном скрипте ждать скрытое окно, во втором при запуске создавать окно, можно с нужными данными, основной скрипт реагирует на его появление, берёт из него данные если надо и закрывает скрипт.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2023-01-15T14:02:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156387#p156387</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlClick вызов скрипта из реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=156385#p156385" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>установить резервный хоткей который ничего не затронет, например vk0A, и из второго скрипта отправлять его нажатие.</p></blockquote></div><p>Тоже не работает. Проверял.</p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>с помощью Global container можно вызвать функцию.</p></blockquote></div><p>Похоже яндекс ничего не знает про сочетание Global container и AHK. Я тоже ))</p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p><strong>taravasya</strong> Добавьте возможность &#039;общения&#039; между скриптами</p></blockquote></div><p>Как я написал выше, думаю, что проблема решится с помощью утилиты <strong>runasspc</strong>. Если и с ней не получится, то думал налаживать взаимодействие через ini файл. В нём сейчас хранятся данные про яркость/контраст/стоимость/требуемое количество копий... Туда же, по идее, можно добавить и подсчёт общего количества копий.<br />Хотел избежать такого сценария. Есть один важный момент, в основном скрипте, есть хоткей, по нажатию которого, происходит скан/печать, +тоже самое происходит при клике на соответствующую картинку. В обоих случаях, работает подсчёт и изменение результирующих данных в GUI. Повесить функцию скан/печать на кнопку сканера, надо как дополнительную опцию, а не вместо имеющихся, потому, что в разных ситуациях удобнее использовать разные сценарии. И вот, что бы &quot;синхронизировать&quot; отображение результирующих значений, надо либо в основном скрипте какой-то повторяющийся в цикле опрос ini файла делать, либо, после использования стороннего скрипта, в GUI не будет отображаться актуальная информация, до тех пор, пока не произойдёт какое-то действие в основном скрипте.<br />Или можно как-то элегантнее настроить взаимодействие?</p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>можно перед нажатием записывать текст в скрытое окно первого скрипта</p></blockquote></div><p>Разве там не будет той же самой проблемы? Имеет значение, скрытое это окно или нет?</p>]]></content>
			<author>
				<name><![CDATA[taravasya]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33758</uri>
			</author>
			<updated>2023-01-15T13:31:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=156385#p156385</id>
		</entry>
</feed>
