<?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="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5417&amp;type=atom" />
	<updated>2011-01-25T10:32:29Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=5417</id>
		<entry>
			<title type="html"><![CDATA[AHK: Смена обоев рабочего стола]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=44393#p44393" />
			<content type="html"><![CDATA[<p>Требует наличия <a href="http://www.autohotkey.net/~tic/Gdip.ahk">Gdip.ahk</a> в <a href="http://www.autohotkey.com/docs/Functions.htm#lib">пользовательской библиотеке</a> (папка Мои документы\AutoHotkey\Lib\).<br /></p><div class="codebox"><pre><code>SetWallpaper(sWallpaperPath, nStyle = 3)
{
/*
Функция меняет обои рабочего стола.

sWallpaperPath — путь к файлу с изображением

nStyle = 1 — по центру
nStyle = 2 — замостить
nStyle = 3 — растянуть

Только для Win 7:
nStyle = 4 — по размеру
nStyle = 5 — заполнение

Требует наличия Gdip.ahk в пользовательской библиотеке.
http://www.autohotkey.net/~tic/Gdip.ahk
*/

   SPI_SETDESKWALLPAPER = 0x14
   SPIF_SENDWININICHANGE = 0x2
   SPIF_UPDATEINIFILE = 0x1

   bTile := nStyle = 2 ? 1 : 0
   iStyle := (nStyle = 1 || nStyle = 2) ? 0 : nStyle = 4 ? 6 : nStyle = 5 ? 10 : 2

   if !FileExist(A_AppData &quot;\Wallpaper&quot;)
      FileCreateDir, %A_AppData%\Wallpaper
   dFile := A_AppData &quot;\Wallpaper\Wallpaper.bmp&quot;

   SplitPath, sWallpaperPath,,, OutExtension
   if OutExtension != bmp
   {
      if !pToken := Gdip_Startup()
      {
         MsgBox, 48, Ошибка GDI+, Убедитесь в наличии gdiplus.dll в вашей системе!
         Return
      }
      if !pBitmap := Gdip_CreateBitmapFromFile(sWallpaperPath)
      {
         MsgBox, 48, Ошибка GDI+, Невозможно извлечь изображение из файла.
         Gdip_Shutdown(pToken)
         Return
      }
      Gdip_SaveBitmapToFile(pBitmap, dFile)
      Gdip_DisposeImage(pBitmap)
      Gdip_Shutdown(pToken)
   }
   Else
      FileMove, %sWallpaperPath%, %dFile%, 1

   RegWrite, REG_SZ, HKCU, Control Panel\Desktop, TileWallpaper, %bTile%
   RegWrite, REG_SZ, HKCU, Control Panel\Desktop, WallpaperStyle, %iStyle%

   DllCall(&quot;SystemParametersInfo&quot;, UInt, SPI_SETDESKWALLPAPER, UInt, 0
      , Str, dFile, UInt, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE)
}</code></pre></div><p>Авторы скрипта — <strong>teadrinker</strong> и <strong>YMP</strong>.<br />Задавайте вопросы по работе скрипта и сообщайте о замеченных багах в <a href="http://forum.script-coding.com/viewtopic.php?id=5414">этой</a> теме.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-01-25T10:32:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=44393#p44393</id>
		</entry>
</feed>
