<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK:  "Затемнение" Рабочего Стола]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7122&amp;type=atom" />
	<updated>2012-04-19T21:56:09Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7122</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59573#p59573" />
			<content type="html"><![CDATA[<p>Итак, возвращаясь к вопросу темы.</p><p>В результате совместных <em>&quot;мучений&quot;</em> получился скрипт </p><div class="codebox"><pre><code>Gui Gray:New, +LastFound +AlwaysOnTop -Caption +ToolWindow +HwndMyGuiHwnd
Gui, Gray:Default
Gui , Color, 0
WinSet, Transparent, 200
Gui, Show, x0 y0 NoActivate W%A_ScreenWidth% H%A_ScreenHeight%
Gui, Default
vWinName := &quot;Windows 7&quot;
Gui, New , +OwnDialogs -caption +AlwaysOnTop +HwndMyFocus , %vWinName%
Gui, Margin , 0, 0 ; без caption
Gui, Add, Picture, x0 y0 w750 h563 , C:\AHK\IMG\Fon_s_knopkami.png ;C:\AHK\IMG\Fon_s_dyrkami.png
;Gui, Color, EEAA99 ;  background color Example values: Silver, FFFFAA, 0xFFFFAA, Default
Gui, Show, xCenter yCenter
SetTimer lbTopWinLogo,10, on
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *!Tab, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *LButton, LBpressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *XButton1, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *XButton2, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *MButton, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *RButton, TabPressed
return
GuiClose:
GuiEscape:
SetTimer lbTopWinLogo,, off
ExitApp

LBpressed:
   MouseGetPos,,,OutputVarWin
   if (MyFocus = OutputVarWin)
   Click
return

TabPressed:
return

lbTopWinLogo:
if (!WinActive(vWinName))
     WinActivate, %vWinName%
MouseGetPos, OutputVarX, OutputVarY, OutputVarWin
   if (MyFocus = OutputVarWin)
    ToolTip X= %OutputVarX% `n Y= %OutputVarY%    
return

;Lbutton::
;   MouseGetPos,,,OutputVarWin
;   if (MyFocus = OutputVarWin)
;   Click
;return</code></pre></div><p>Но если посмотреть <span class="bbu"><strong><a href="http://forum.script-coding.com/viewtopic.php?pid=59496#p59496">мой пост #3</a></strong></span>, то там остались три кнопки.</p><p>Вот моя основная идея.<br />1. Если курсор над кнопкой, то кнопка перерисовывается в статус &quot;Курсор над кнопкой&quot;.<br />2. Если курсор не над кнопкой, то кнопка перерисовывается в статус&nbsp; &quot;По умолчанию&quot;.<br />3. Если курсор над кнопкой и произведен выбор (ЛКМ или Enter), то кнопка перерисовывается в статус &quot;Нажатие на кнопку&quot;.</p><p>Как это лучше реализовать.<br />То есть через <strong>Gui, Add, Picture,.....</strong> с перерисовкой по Hwnd(картинки кнопки) или иначе?</p><p>Вот три вида кнопок для LogOff</p><p>По умолчанию -&gt; <span class="postimg"><img src="http://i34.fastpic.ru/big/2012/0420/e5/0f3aff3be437792aebd794574e7091e5.png" alt="http://i34.fastpic.ru/big/2012/0420/e5/0f3aff3be437792aebd794574e7091e5.png" /></span> Курсор над кнопкой -&gt; <span class="postimg"><img src="http://i34.fastpic.ru/big/2012/0420/8f/836b260009a822f8f9d2d21afb15758f.png" alt="http://i34.fastpic.ru/big/2012/0420/8f/836b260009a822f8f9d2d21afb15758f.png" /></span> Нажатие на кнопку -&gt; <span class="postimg"><img src="http://i34.fastpic.ru/big/2012/0420/bb/d5e647a107a2a4ecb7410b39528ae1bb.png" alt="http://i34.fastpic.ru/big/2012/0420/bb/d5e647a107a2a4ecb7410b39528ae1bb.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-04-19T21:56:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59573#p59573</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59572#p59572" />
			<content type="html"><![CDATA[<p>Я посмотрел на весь скрипт в целом и оказалось, что подобные флаги я использую неоднократно, а это вносит путаницу. <br />И посему&nbsp; была написана функция отключения/включения для HotKey.</p><p><span class="bbu"><strong>OFF:</strong> Содержимое скопировал в тему про массивы</span></p><p><span class="bbu">fnHotKeyOnOff(a,b)</span><br />A - логическое значение True/False - включить/выключить HotKey из моего описанного массива.<br />B - массив меток которые не включаются/не выключаются соответственно.</p><div class="codebox"><pre><code>fnHotKeyOnOff(,&quot;sasa1&quot;,&quot;sasa2&quot;)
;или
vTmpArr := [&quot;tata1&quot;,&quot;tata2&quot;,&quot;tata3&quot;]
fnHotKeyOnOff(false,vTmpArr*)
return
;---------------------------------------
fnHotKeyOnOff(fSw = true, vIsArr*)
{
  msgbox %fSw%
  vLoop := vIsArr.MaxIndex()
  i := 1
  loop %vLoop%
  {
  a := vIsArr[i]
  msgbox %a%
  i++
  }
return
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-04-19T21:45:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59572#p59572</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59550#p59550" />
			<content type="html"><![CDATA[<p><a href="http://l.autohotkey.net/docs/Functions.htm#ShortCircuit">ShortCircuit</a><br />Если «настроиться» на правильный лад, неочевидность отсутствует <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2012-04-19T09:50:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59550#p59550</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59549#p59549" />
			<content type="html"><![CDATA[<p>Не самая лучшая идея - совместить проверку флага и вызов функции в одной строке, потому что конструкция<br /><strong>if (МояФункция() and Флаг ) then return</strong><br />будет иметь сторонние эффекты, связанные с вызовом <strong>МояФункция</strong>, так как она вызывается в любом случае.<br />В языке программирования С, если не ошибаюсь, есть возможность оптимизации, то есть <strong>if (a and someFunc())</strong> - тут <em>someFunc()</em> может и не вызываться, если <strong>a</strong> = 0<br />В АНК есть ли такая возможность, не знаю, даже если и была бы, лучше избегать таких неочевидных решений. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-19T07:01:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59549#p59549</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59542#p59542" />
			<content type="html"><![CDATA[<p>Нет конечно, они имеют все стандартную проверку, вот например: </p><div class="codebox"><pre><code>FireFox:
if (fnWinClose(arrayKey[fnRetIndexOfHotkey(A_ThisHotkey),cAhkC_WinT]))
  return
Run, %ProgSysPath32%Mozilla Firefox\firefox.exe
return</code></pre></div><p>один if стоит, ну а где один там и второй будет... скоро придётся функцию писать (для обощения) <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p><p>Или просто дополнить этот IF<br /></p><div class="codebox"><pre><code>FireFox:
if (fnWinClose(arrayKey[fnRetIndexOfHotkey(A_ThisHotkey),cAhkC_WinT]) and NoKeys )
  return
Run, %ProgSysPath32%Mozilla Firefox\firefox.exe
return</code></pre></div><div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>(за сим откланиваюсь на сегодня <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />)</p></blockquote></div><p>аналогично <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-04-18T20:14:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59542#p59542</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59541#p59541" />
			<content type="html"><![CDATA[<p>Флаг включается однократо и блокирует те хоткеи, в которые внесено<br /><strong>if NoKeys<br />return</strong><br />Ты написал, что они у тебя одним блоком идут, наверно накопипастить пару строк это нетрудно <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /><em>(за сим откланиваюсь на сегодня <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />)</em></p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-18T20:09:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59541#p59541</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59540#p59540" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>может всё же после <strong>Gui, Show, xCenter yCenter</strong>, а?</p></blockquote></div><p>На мой взгляд, без разницы - окно уже создано и имеет id, только невидимо. Конечно, если между <strong>New</strong> и <strong>Show</strong> есть большой (по времени) кусок кода,<br />предполагающий работу с блокированными клавишами, то лучше после <strong>Show</strong></p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-18T20:06:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59540#p59540</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59539#p59539" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>Так он и включается в одном месте - перед показом затемненного окна <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p></blockquote></div><p>ты про флаг или про <a href="http://forum.script-coding.com/viewtopic.php?pid=59535#p59535">пост #23</a>?</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-04-18T20:02:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59539#p59539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59538#p59538" />
			<content type="html"><![CDATA[<p>Так он и включается в одном месте - перед показом затемненного окна <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-18T19:58:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59538#p59538</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59537#p59537" />
			<content type="html"><![CDATA[<p>Да, флаг это хорошо, но вот не позабыть бы везде проставить <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /> Проще выключать-включать в одном месте, а то потом концов не найдёшь. IMHO</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-04-18T19:57:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59537#p59537</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59536#p59536" />
			<content type="html"><![CDATA[<p>Насчет своих хоткеев... Не знаю, единственное, что приходит на ум - завести флаг при показе Gui, например<br /><strong>NoKeys&nbsp; := 1</strong>, а первой строкой в своих хоткеях прописать<br /></p><div class="codebox"><pre><code>if NoKeys
return</code></pre></div><p>Естесственно, после того как Gui отработает, пишем <br /><strong>NoKeys&nbsp; := 0</strong></p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-18T19:54:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59536#p59536</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59535#p59535" />
			<content type="html"><![CDATA[<p>Спасибо за скрипт, а я то голову ломал <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Кстати </p><div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>А можно и... обратить. После <strong>Gui, New , +OwnDialogs -caption +AlwaysOnTop +HwndMyFocus , %vWinName%</strong>&nbsp; &nbsp; вставить</p></blockquote></div><p>может всё же после <strong>Gui, Show, xCenter yCenter</strong>, а?</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-04-18T19:49:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59535#p59535</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59534#p59534" />
			<content type="html"><![CDATA[<p>Чтоб не мигало, можно таким же способом &quot;укротить&quot; все клавиши мыши:<br /></p><div class="codebox"><pre><code>Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *!Tab, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *LButton, LBpressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *XButton1, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *XButton2, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *MButton, TabPressed
Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *RButton, TabPressed
...
...
LBpressed:
   MouseGetPos,,,OutputVarWin
   if (MyFocus = OutputVarWin)
   Click
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-18T19:46:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59534#p59534</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59533#p59533" />
			<content type="html"><![CDATA[<p>Спасибо, я так уже сделал, просто не стал писать - <em>&quot;нет предела совершенству&quot;</em> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Жаль что моргание осталось при выполнении <strong>WinActivate, %vWinName% </strong>, но это увы это <em>&quot;издержки производства&quot;</em> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Кстати не только Alt-Tab, но и срабатывают остальные хоткеи самого скрипта их можно сразу все выключить, а потом включить одной командой? <br />Я конечно могу их повыключать/повключать... но уж больно лениво писать ещё одну функцию, хотя и не сложно т.к. они у меня все в массиве хранятся.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-04-18T19:08:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59533#p59533</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  "Затемнение" Рабочего Стола]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59532#p59532" />
			<content type="html"><![CDATA[<p>Как вариант, пойдет. Разве что при зажатии Alt+Tab проскакивает-таки выбор окон. Но на это и внимания можно не обращать.<br />А можно и... обратить. После <strong>Gui, New , +OwnDialogs -caption +AlwaysOnTop +HwndMyFocus , %vWinName%</strong>&nbsp; &nbsp; вставить </p><div class="codebox"><pre><code>Hotkey, IfWinExist, ahk_id %MyFocus%
Hotkey, *!Tab, TabPressed</code></pre></div><p>а в конце скрипта </p><div class="codebox"><pre><code>TabPressed:
return</code></pre></div><p>(Хотя эту метку можно поставить перед любым <strong>return</strong>)</p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-18T19:00:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59532#p59532</id>
		</entry>
</feed>
