<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Ahk: Мастер очистки рабочего стола 2]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5285&amp;type=atom" />
	<updated>2010-12-20T21:36:50Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5285</id>
		<entry>
			<title type="html"><![CDATA[Re: Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42896#p42896" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Хорошо, поищу по форуму способ обойтись без файлов.</p></blockquote></div><p>Искать лучше всего <a href="http://www.autohotkey.com/forum/topic32238.html">здесь</a>.<br />Вот тебе в помощь рабочий примерчик. Скрипт получает bitmap экрана, предварительно на время скрыв развёрнутые окна, и помещает полученную картинку в GUI. Требует наличия в пользовательской библиотеке скрипта <a href="http://www.autohotkey.net/~tic/Gdip.ahk">Gdip.ahk</a><br /></p><div class="codebox"><pre><code>   SetBatchLines, -1

   Gui, Add, Pic
      , % &quot;x0 y0 w&quot; A_ScreenWidth/3 &quot; h&quot; A_ScreenHeight/3 &quot; hwndhPic +0xE&quot; ; SS_BITMAP := 0xE

   If !pToken := Gdip_Startup()
   {
      MsgBox, 48, Ошибка GDI+!
         , Убедитесь в наличии gdiplus.dll в вашей системе!
      ExitApp
   }
   
   WinGet, List, List
   Loop % List
   {
      WinGet, MinMax, MinMax, % &quot;ahk_id &quot; List%A_Index%
      if (MinMax = -1 || List%A_Index% = WinExist(&quot;Program Manager ahk_class Progman&quot;)
         || List%A_Index% = WinExist(&quot;ahk_class Shell_TrayWnd&quot;))
         Continue
      WinList .= List%A_Index% . &quot;`n&quot;
   }
   StringTrimRight, WinList, WinList, 1

   Loop, parse, WinList, `n
      WinHide, ahk_id %A_LoopField%

   pBitmap := Gdip_BitmapFromScreen()

   Sort, WinList, F ReverseDirection D`n

   Loop, parse, WinList, `n
   {
      WinShow, ahk_id %A_LoopField%
      WinActivate, ahk_id %A_LoopField%
   }

   SetImageToControl(pBitmap, hPic)
   Gdip_DisposeImage(pBitmap)
   Gdip_Shutdown(pToken)
   
   Gui, Show, % &quot;w&quot; A_ScreenWidth/3 &quot; h&quot; A_ScreenHeight/3
   Return
   
GuiClose:
   ExitApp
   
ReverseDirection(a1, a2, offset)
{
   return offset
}

SetImageToControl(pBitmap, hwnd)
{
   ControlGetPos,,, W, H,, ahk_id %hwnd%
   hBitmapPic := CreateDIBSection(W, H)
   pBitmapPic := Gdip_CreateBitmapFromHBITMAP(hBitmapPic)
   G := Gdip_GraphicsFromImage(pBitmapPic)
   Gdip_SetInterpolationMode(G, 7)
   Width := Gdip_GetImageWidth(pBitmap), Height := Gdip_GetImageHeight(pBitmap)
   Gdip_DrawImage(G, pBitmap, 0, 0, W, H, 0, 0, Width, Height)
   DeleteObject(hBitmapPic)

   hBitmapPic := Gdip_CreateHBITMAPFromBitmap(pBitmapPic)
   SetImage(hwnd, hBitmapPic)

   Gdip_DeleteGraphics(G)
   Gdip_DisposeImage(pBitmapPic)
   DeleteObject(hBitmapPic)
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-12-20T21:36:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42896#p42896</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42892#p42892" />
			<content type="html"><![CDATA[<p>Непрозрачный фон - это поправимо.<br /></p><div class="quotebox"><blockquote><p>Кстати, файл скриншота вообще не нужен, достаточно получить bitmap.</p></blockquote></div><p>Хорошо, поищу по форуму способ обойтись без файлов.<br />Кстати, поначалу думал сделать полезную программу, а не просто шутку. Например, если человек отлучился от компьютера на 2 минуты, и нужно скрыть рабочий стол от посторонних глаз. Вот только один &quot;юнит&quot; будет долго трудиться, а вызвать толпу - у меня не хватило терпения. В общем пока вот так, когда время появится - будут катапульты и т. д.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2010-12-20T19:52:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42892#p42892</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42890#p42890" />
			<content type="html"><![CDATA[<p>Нужно было просто пояснить, что это программа-шутка. Попробовал — выглядит несколько архаично, такие лет 10 назад писали. Принципиальные ошибки: у персонажа непрозрачный фон; использование paint&#039;а для получения файла скриншота. Эти темы здесь уже разбирались. Кстати, файл скриншота вообще не нужен, достаточно получить bitmap.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-12-20T16:39:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42890#p42890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42889#p42889" />
			<content type="html"><![CDATA[<p>Так Вы ещё не запускали его?<br />Объекты ни куда не деваются. Просто поверх рабочего стола появляются несколько окон, создаётся впечатление постепенной очистки рабочего стола. По нажатию клавиши Esc окна закрываются, и мы видим, что все объекты остались на своих местах.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2010-12-20T16:29:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42889#p42889</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42887#p42887" />
			<content type="html"><![CDATA[<p>В смысле,&nbsp; &quot;убирает&quot;? Мне нужны мои объекты!</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-12-20T15:17:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42887#p42887</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42886#p42886" />
			<content type="html"><![CDATA[<p>Описание: пользователь видит, как на экране появляется персонаж и &quot;убирает&quot; с рабочего стола все имеющиеся объекты. Сам скрипт немного сыроват (&amp;#946;-версия): в коде присутствуют лишние закомментированные строки, где-то наоборот, не хватает пояснений. И работает всё это пока при стандартных размерах значков. Нет возможности изменить громкость (выключить) звук.<br />Вопрос, как сделать этот скрип&nbsp; заставкой пока не рассматривался.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2010-12-20T13:30:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42886#p42886</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42884#p42884" />
			<content type="html"><![CDATA[<p>А описание скрипта где?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-12-20T09:50:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42884#p42884</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Ahk: Мастер очистки рабочего стола 2]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42879#p42879" />
			<content type="html"><![CDATA[<p>Выкладываю скрипт на тестирование. Программа-заставка &quot;Мастер очистки рабочего стола 2&quot; <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Ищу недочёты&nbsp; и ошибки. Интересует и мнение об уровне громкости.<br />Скрипт и прилагаемые файлы в архиве. <a href="http://files.mail.ru/Q6EMV6">http://files.mail.ru/Q6EMV6</a></p><p>Внимание! Для завершения работы скрипта нужно нажать Escape.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2010-12-19T20:43:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42879#p42879</id>
		</entry>
</feed>
