<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5426&amp;type=atom" />
	<updated>2011-01-28T15:37:38Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5426</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44491#p44491" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>а почитать про «<strong><span style="color: red">#</span></strong>IfWinActive»:</p></blockquote></div><p>Благодарю. Я ведь только вчера в 23:00 первый раз открыл для себя AHK, не пинайте сильно</p><p>Для меня что <strong><span style="color: red">#</span></strong>IfWinActive, что просто IfWinActive было одним и тем же.</p><p>Попробовал так:<br /></p><div class="codebox"><pre><code>#IfWinActive ahk_class OperaWindowClass
    ~LButton &amp; RButton::Send, ^{Enter}
Return</code></pre></div><p>Так тоже работает. Это хорошо, когда есть несколько вариантов для решения одной задачи</p><div class="quotebox"><cite>InFlames пишет:</cite><blockquote><p>Для x это VK58, для ctrl+x это ^{VK58}</p><div class="codebox"><pre><code>#InstallKeybdHook
#InstallMouseHook</code></pre></div><p>Так же виртуальные коды есть <a href="http://api.farmanager.com/ru/winapi/virtualkeycodes.html">тут</a></p></blockquote></div><p>Благодарю за ссылку, а код этот я уже нашёл на форуме вчера где-то в районе 4-х ночи (я ведь отредактировал сообщение и там уже учавствует клавиша ^{VK58}. Правда предложенный вам &quot;проверщик&quot; я нашёл ещё с одной строчкой и выглядит он так:<br /></p><div class="codebox"><pre><code>#InstallKeybdHook
#InstallMouseHook
KeyHistory</code></pre></div><p>В общем все вопросы по этому полностью решены. Благодарю всех, кто участвовал. Возникло ещё несколько вопросов, но они выходят за рамки темы этого топика, поэтому я задал один из них <a href="http://forum.script-coding.com/viewtopic.php?id=5430">в этом топике</a>.</p>]]></content>
			<author>
				<name><![CDATA[zuma]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26693</uri>
			</author>
			<updated>2011-01-28T15:37:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44491#p44491</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44477#p44477" />
			<content type="html"><![CDATA[<p>Виртуальные коды можно посмотреть, открыв основное окно ниже написанного скрипта ahk (двойной клик на иконке в трее по значку ahk), и затем нажать ctrl+k.<br />Откроется история хоткеев, нажимаете нужный хоткей (для ctrl+x можно нажимать просто x). В соответствующем столбце будет виден виртуальный код нажатой клавиши.<br />Для x это VK58, для ctrl+x это ^{VK58}</p><div class="codebox"><pre><code>#InstallKeybdHook
#InstallMouseHook</code></pre></div><p>Так же виртуальные коды есть <a href="http://api.farmanager.com/ru/winapi/virtualkeycodes.html">тут</a></p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-01-28T08:48:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44477#p44477</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44471#p44471" />
			<content type="html"><![CDATA[<p><strong>zuma</strong>, не <br /></p><div class="codebox"><pre><code>~LButton &amp; RButton::
        IfWinActive, ahk_class OperaWindowClass
            …
        IfWinNotActive, ahk_class OperaWindowClass
            …</code></pre></div><p>а почитать про «<strong><span style="color: red">#</span></strong>IfWinActive»:<br /></p><div class="quotebox"><cite>InFlames пишет:</cite><blockquote><p>1. Использовать #IfWinActive ahk_class &lt;тут класс оперы&gt;</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-01-28T08:20:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44471#p44471</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44469#p44469" />
			<content type="html"><![CDATA[<p>Спасибо за быстрый ответ. не думал, что тут по ночам кто-то ещё шарится. Вот стал мучится, чтобы доделать.</p><p><strong>Второй вопрос</strong> разрешился полностью, но возник наводящий вопрос. А как узнать коды нажатых клавиш? Дайте строчку кода, чтобы в MsgBox выскакивало например (просто хочу ещё и Ctrl+x задействовать, а постоянно спрашивать коды, как-то глупо).</p><p><strong>Первый вопрос</strong> до конца не решён. Изначально я написал такой код:<br /></p><div class="codebox"><pre><code>~LButton &amp; RButton::
        IfWinActive, ahk_class OperaWindowClass
            Send, ^{Enter}
Return</code></pre></div><p>И он срабатывал, но в Кореле ничего не происходило. Т.е. видимо скрипт всё-таки перехватывает это сочетание, а в замен ничего не отдаёт<br />Тогда я написал так:<br /></p><div class="codebox"><pre><code>~LButton &amp; RButton::
        IfWinActive, ahk_class OperaWindowClass
            Send, ^{Enter}
        IfWinNotActive, ahk_class OperaWindowClass
            ~LButton &amp; RButton
Return</code></pre></div><p>Но так в Кореле тоже ничего не происходит. Может быть это особенности Корела, а может я чего-то не знаю?</p><p>Нашёл как победить:<br /></p><div class="codebox"><pre><code>~LButton &amp; RButton::
        IfWinActive, ahk_class OperaWindowClass
            Send, ^{Enter}
        IfWinNotActive, ahk_class OperaWindowClass
            MouseClick, Middle
Return</code></pre></div><p>И вот теперь бьюсь и не могу вставить Ctrl+x<br />Хочу, чтобы функция срабатывала так: &quot;Когда я нажимаю левую кнопку мыши и выделяю, я (не отпуская ЛКМ) нажимаю Xbutton2 и выделенное вырезается через сочетание Ctrl+x&quot;<br />Пробую код такой:<br /></p><div class="codebox"><pre><code>~LButton &amp; XButton2::Send, ^{vk58}</code></pre></div><p>Ничего не происходит. Как будто ничего и не нажимал.</p>]]></content>
			<author>
				<name><![CDATA[zuma]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26693</uri>
			</author>
			<updated>2011-01-27T23:56:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44469#p44469</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44466#p44466" />
			<content type="html"><![CDATA[<p>1. Использовать #IfWinActive ahk_class &lt;тут класс оперы&gt;</p><p>2. Использовать виртуальные коды ^{vk56} для ^v и ^{vk43} для ^c</p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-01-27T22:39:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44466#p44466</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44465#p44465" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Я не хочу привязываться к названию окна, т.к. оно каждый раз разное.</p></blockquote></div><p>Привязываться к классу окна?! Помнится, так было можно.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-01-27T22:39:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44465#p44465</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44464#p44464" />
			<content type="html"><![CDATA[<p>Сейчас это произошло и без Notepaв++ . Ну ёлки палки. Перезапуск программы ничего не даёт. Просто обидно... то работала как часы, теперь переключается в режим &quot;без CTRL&quot; и никак не получается вернуть.</p>]]></content>
			<author>
				<name><![CDATA[zuma]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26693</uri>
			</author>
			<updated>2011-01-27T22:20:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44464#p44464</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Как выполнить нажатие, если процесс opera.exe + странности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44463#p44463" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Menu, Tray, Icon, mouse1.ico, 1
~LButton &amp; RButton::Send, ^{Enter}
XButton2::Send, ^c
XButton1::Send, ^v
MButton::Click 2</code></pre></div><p>Вот такой код.</p><p><strong>Вопрос 1</strong>: (пол форума перерыл, так и не смог понять, как это сделать)<br />В Опере есть такое сочетание клавиш как Ctrl + Enter. Оно используется для автоввода пары логин-пароль<br />И вот я сделал такое сочетание:<br /></p><div class="codebox"><pre><code>~LButton &amp; RButton::Send, ^{Enter}</code></pre></div><p>И оно прекрасно работает, но когда я вдруг открыл Corel или Xara, то там сочетание &quot;когда зажата правая, нажимаем левую&quot; используется для копирования объектов и если в Xara этот вопрос можно легко обойти, то в Corel как это сделать непонятно.<br />В связи с таки положением вещей, я хочу сделать так, чтобы скрипт выполнял вышеуказанную строчку кода, только тогда, когда активный процесс является opera.exe . Я не хочу привязываться к названию окна, т.к. оно каждый раз разное.<br />Т.е. мне нужен такой алгоритм:<br /></p><div class="quotebox"><blockquote><p>1. Когда я нажимаю это ~LButton &amp; RButton<br />2. Произвести проверку активного окна и<br />3. Если активное окно это программа opera.exe, то выполнить Send, ^{Enter}<br />4. А если активное окно это другой процесс, то ничего не делать</p></blockquote></div><p><strong>Вопрос 2</strong><br />Вот код:<br /></p><div class="codebox"><pre><code>XButton2::Send, ^c
XButton1::Send, ^v
MButton::Click 2</code></pre></div><p>В котором исправно работает только MButton::Click 2<br />А Первые две строчки работают... работают и вдруг в какой-то момент БАЦ... и перестаёт работать Ctrl.<br />Т.е. я нажимаю XButton2 и вместо копирования у меня в активное окно печатается буква &quot;c&quot;<br />Соотвественно нажатие XButton1 приводит к вставке буквы &quot;v&quot;</p><p>Проявляется это спонтанно. Я не могу отловить никак. Не знаю почему и самое главное не знаю, в связи с чем такое вообще возможно.<br />И что самое интересно, иногда это проходит. Само по себе проходит тоже не понятно по каким причинам.</p><p>Может быть TranslateClient как-то влияет. Может быть KeySwitcher.</p><p>Если я в трее нажимаю Pause, а затем снова запуск.... это ничего не меняет. Т.е. если прога переключилась в режим &quot;просто c и просто v&quot;, <span style="color: #FCFCFC">то помогает только перезапуск программы.</span> нифига не помогает даже перезапуск. В чём причина не знаю. Сейчас уже перезапускал раз 10... не помогает. Программа ушла в непонятку, что может влиять не знаю, хотя похоже <strong>при переходе в окно Notepad++</strong> </p><p>Как полечить второе вообще не знаю, сейчас выловил, что проблема в Notepad++ решается его перезапуском. Но, что интересно, обычное сочетание Ctrl+c и Ctrl+v на клавиатуре в ноутпаде++ прекрасно работает. </p><p>Может подскажите, как решить подобную проблему. Может быть как-то укрупнить скрипт и что-нибудь придумать такое эдакое. </p><p>Os. WinXP Pro SP3</p>]]></content>
			<author>
				<name><![CDATA[zuma]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26693</uri>
			</author>
			<updated>2011-01-27T22:18:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44463#p44463</id>
		</entry>
</feed>
