Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты

Закрытая тема
Настройки темы
[архив - Часть 2] AutoIt скрипты

(*.*)


Сообщения: 36567
Благодарности: 6698


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 27-01-2008
Внимание!
Тема переведена в архивное состояние







(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.


Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).
Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).



Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:02, 05-02-2006

 

Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
Немного(?) переделал под свои нужды
Спасибо. Правда у меня антивирус ругается на Клавиатурный перехватчик, хотя это вполне логично.
А зачем Sleep() добавлена дважды? И ещё, постоянно происходит открытие/закрытие dll'ки, имхо лучше использовать один раз DllOpen(), а затем обращатся только к хэндлу (я поправил, и у меня CPU уменьшилось в полтора раза) - Хотя, на самом деле, всё это мелочи, спасибо ещё раз!

Отправлено: 17:20, 10-08-2007 | #281



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Реестровый способ установки обоев рабочего стола.
Код: Выделить весь код
;~ Этот метод только для BMP-файлов, (!проверено только на Windows XP!)
;~ $BMP - Путь к BMP-файлу
;~ $STYLE - Расположение:
;~ 0 - По центру; 1 - Замостить; 2 - Растянуть
Func SetWallpaper($BMP,$STYLE=0)
    Local $Tile=0
    If $STYLE=1 Then $Tile=1
    RegWrite("HKCU\Control Panel\Desktop","Wallpaper","REG_SZ",$BMP)
    RegWrite("HKCU\Control Panel\Desktop","WallpaperStyle","REG_SZ",$STYLE)
    RegWrite("HKCU\Control Panel\Desktop","TileWallpaper","REG_SZ",$Tile)
    RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","Wallpaper","REG_SZ",$BMP)
    RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","WallpaperStyle","REG_SZ",$STYLE)
    RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","TileWallpaper","REG_SZ",$Tile)
    DllCall("user32.dll","int","UpdatePerUserSystemParameters","int",0,"int",0)
EndFunc
P.S.
К сожалению этот способ работает только с BMP-файлами, поэтому для конвертации из *.jpg во временный *.bmp я пользуюсь консольной утилитой
P.P.S.
Хотелось бы конечно решить проблему конвертации средствами AutoIt. Думаю это возможно, поскольку при ручной установке обоев через апплет(desk.cpl) система сама конвертирует их в bmp, но как она это делает - для меня пока загадка.

Последний раз редактировалось Diamond, 12-08-2007 в 17:36. Причина: Обнаружил ошибку


Отправлено: 11:56, 11-08-2007 | #282


Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


1. Как создать MDI-окно($WS_EX_MDICHILD) внутри родительского и как переключаться между ними? Наподобие того, как это делает программа установки... (типа страничного перелистывания: NextPage - PreviewPage).
2. Зачем нужен стиль $WS_GROUP? Я читал справку но так ничего и не понял...

Отправлено: 14:38, 11-08-2007 | #283


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Diamond,
Цитата:
при ручной установке обоев через апплет(desk.cpl) система сама конвертирует их в bmp
А может просто переименовывает? может немного глупо и банально, но ты пробовал переименовывать просто формат файла?

Цитата:
Как создать MDI-окно($WS_EX_MDICHILD) внутри родительского и как переключаться между ними? Наподобие того, как это делает программа установки... (типа страничного перелистывания: NextPage - PreviewPage).
Не думаю что тут нужно MDI-окно, тут просто нужно построить функции в начачле которых будут прятаться все динамичные контроли, а в теле просто показываться нужные (созданные предварительно в самом начале строения ГУИ) - И потом при каждом переключении (нажатии Next/Back) вызывать соответственно эти функции.

Хотя в принципе для MDI-окон (почти) можно попробовать типа такого:

Код: Выделить весь код
#include <GuiConstants.au3>

$Gui = GuiCreate("MDI Demo", 400, 300)

$Back = GUICtrlCreateButton("<<Back", 240, 270, 60)
$Next = GUICtrlCreateButton("Next>>", 320, 270, 60)

$ChildGui_1 = GuiCreate("Child window 1", 400, 260, 5, 5, $WS_POPUP)
$LabelGui1 = GUICtrlCreateLabel("Test 1", 20, 60)

$ChildGui_2 = GuiCreate("Child window 2", 400, 260, 5, 5, $WS_POPUP)
$LabelGui2 = GUICtrlCreateLabel("Test 2", 20, 60)

DllCall("user32.dll", "int", "SetParent", "hwnd", $ChildGui_1, "hwnd", $GUI)
DllCall("user32.dll", "int", "SetParent", "hwnd", $ChildGui_2, "hwnd", $GUI)

GUISetState(@SW_SHOW, $Gui)
GUISetState(@SW_SHOW, $ChildGui_1)

While 1
    $Msg = GUIGetMsg(1)
    Select
        Case $Msg[1] = $Gui And $Msg[0] = -3
            Exit
        Case $Msg[0] = $Next
            GUISetState(@SW_HIDE, $ChildGui_1)
            GUISetState(@SW_SHOW, $ChildGui_2)
        Case $Msg[0] = $Back
            GUISetState(@SW_HIDE, $ChildGui_2)
            GUISetState(@SW_SHOW, $ChildGui_1)
    EndSelect
WEnd
Цитата:
Зачем нужен стиль $WS_GROUP?
Ну он как бы групирует все последующие контроли (до следующего использования этого стиля), но в каких целях, я честно сам не понял.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:41, 11-08-2007 | #284


Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
...ты пробовал переименовывать просто формат файла?
Именно bmp, и именно конвертация! Было бы слишком просто, хотя, такая мысль приходила раньше и ко мне.
Цитата:
Хотя в принципе для MDI-окон (почти) можно попробовать типа такого:
Идея хорошая, спасибо. Всё-таки хотелось бы увидеть как работает MDI, и хотелось бы точно знать как на самом деле правильно.
Цитата:
Ну он как бы групирует все последующие контроли (до следующего использования этого стиля), но в каких целях, я честно сам не понял.
Я просто предположил что этот стиль как-то связан с моим первым вопросом, т.е. группирует окна.

Отправлено: 21:36, 11-08-2007 | #285


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Diamond,
Цитата:
хотелось бы увидеть как работает MDI
Вот так (изменённый пример с оф. форума):

Код: Выделить весь код
#include <GuiConstants.au3>

Global $gui[100000]
$x = 1

$Mother_GUI = GUICreate("Thinking box",-1,-1,-1,-1,BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
$Button_1 = GUICtrlCreateButton("New Box", 5, 5, 70, 20)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
$Button_2 = GUICtrlCreateButton("Delete Box",5,30,70,20)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
$Input_1 = GUICtrlCreateInput("1",5,60,70,20)
GUICtrlSetResizing(-1,$GUI_DOCKALL)
GUISetState(@SW_SHOW, $Mother_GUI)

$Main_GUI = GUICreate("",220,300,80,5,$WS_POPUPWINDOW)
GUISetBkColor(0xCCCCCC)

DllCall("user32.dll", "int", "SetParent", "hwnd", WinGetHandle($Main_GUI), "hwnd", WinGetHandle($Mother_GUI))

$LeftCounter = 0
$TopPlus = 20
Makebox()

GUISetState(@SW_SHOW,$Main_GUI)

While 1
    setsize()
    $msg = GUIGetMsg()
    if $msg = $GUI_EVENT_CLOSE then Exit
    if $msg = $Button_1 then Makebox()
    if $msg = $Button_2 then GUIDelete($Gui[GUICtrlRead($Input_1)])
    sleep(10)
WEnd

Func Makebox()
    if $x < 100000 then
		$Mother_GUI_Pos_Arr = WinGetPos($Mother_GUI)
		$LeftCounter += 1
		
		If 250+$LeftCounter*5 > $Mother_GUI_Pos_Arr[2] Then
			$LeftCounter = 1
			$TopPlus -= 20
			If $TopPlus < 0 Then $TopPlus = 60
		EndIf
		
		$Left = 40+$LeftCounter*5
		$Top = $TopPlus+$LeftCounter*5
		
		$gui[$x] = GUICreate("", 200, 90, $Left, $Top, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
        $label = GUICtrlCreateLabel("  Box number: " & $x,0,0,200,20,-1,$GUI_WS_EX_PARENTDRAG)
        GUICtrlSetFont(-1,12,14,0,"Comic Sans MS")
        settopbarcolor()
        GUICtrlCreateEdit("",0,20,200,70,$WS_VSCROLL)
        DllCall("user32.dll", "int", "SetParent", "hwnd", WinGetHandle($Gui[$x]), "hwnd", WinGetHandle($Main_GUI))
        GUISetState(@SW_SHOW,$gui[$x])
		$x += 1
    EndIf
EndFunc

Func settopbarcolor($s_control=-1)
    $Random = Random(1,6,1)
    if $Random = 1 Then
        GUICtrlSetBkColor($s_control,0x0000FF)
    elseif $Random = 2 Then
        GUICtrlSetBkColor($s_control,0x00FF00)
    elseif $Random = 3 then
        GUICtrlSetBkColor($s_control,0xFF0000)
    elseif $Random = 4 then
        GUICtrlSetBkColor($s_control,0x00FFFF)
    elseif $Random = 5 then
        GUICtrlSetBkColor($s_control,0xFF00FF)
    elseif $Random = 6 Then
        GUICtrlSetBkColor($s_control,0xFFFF00)
    EndIf
EndFunc

Func setsize()
    $Motherpos = WinGetPos($Mother_GUI)
    $Mainpos = WinGetPos($Main_GUI)
    if $Mainpos[2] <> $Motherpos[2]-98 or $Mainpos[3] <> $Motherpos[3]-40 then WinMove($Main_GUI,"",85,5,$Motherpos[2]-98,$Motherpos[3]-45)
EndFunc

Func SpecialEvents()
    Select
        Case @GUI_CTRLID = $GUI_EVENT_CLOSE
            Exit
    EndSelect
EndFunc
То что ты задумал, имхо, не имеет отношения к MDI - Multiple document interface.

И стиль $WS_EX_MDICHILD не совсем делает нужный “эффект”:
Цитата Справка по AutoIT:
Create a child window included in its parent window (simulation not real MDI).
Вот ещё примерчик MDI:

Код: Выделить весь код
#include <GuiConstants.au3>

$MainGui = GuiCreate("Main", 485, 280)
$Child_1_Gui = GuiCreate("Child 1", 150, 100, 5, 5)
$Child_2_Gui = GuiCreate("Child 2", 150, 100, 165, 5)
$Child_3_Gui = GuiCreate("Child 3", 150, 100, 325, 5)
$Child_4_Gui = GuiCreate("Child 4", 150, 100, 5, 135)
$Child_5_Gui = GuiCreate("Child 5", 150, 100, 165, 135)
$Child_6_Gui = GuiCreate("Child 6", 150, 100, 325, 135)

GUISetState(@SW_SHOW, $MainGui)
DllCall("user32.dll", "int", "SetParent", "hwnd", $Child_1_Gui, "hwnd", $MainGui)
GUISetState(@SW_SHOW, $Child_1_Gui)
DllCall("user32.dll", "int", "SetParent", "hwnd", $Child_2_Gui, "hwnd", $MainGui)
GUISetState(@SW_SHOW, $Child_2_Gui)
DllCall("user32.dll", "int", "SetParent", "hwnd", $Child_3_Gui, "hwnd", $MainGui)
GUISetState(@SW_SHOW, $Child_3_Gui)
DllCall("user32.dll", "int", "SetParent", "hwnd", $Child_4_Gui, "hwnd", $MainGui)
GUISetState(@SW_SHOW, $Child_4_Gui)
DllCall("user32.dll", "int", "SetParent", "hwnd", $Child_5_Gui, "hwnd", $MainGui)
GUISetState(@SW_SHOW, $Child_5_Gui)
DllCall("user32.dll", "int", "SetParent", "hwnd", $Child_6_Gui, "hwnd", $MainGui)
GUISetState(@SW_SHOW, $Child_6_Gui)

While 1
	$Msg = GUIGetMsg()
	Switch $Msg
		Case -3
			Exit
		Case Else
			
	EndSwitch
WEnd
Цитата:
как на самом деле правильно.
Смотря что тебе требуется, если нужно создать устновщик используя стиль с Next/Back кнопками, тогда как я и упоминал ранее, нужно в начале построения ГУИ создать ВСЕ контроли (кнопки, лейблы, инпуты и т.д ), спрятать их (GuiCtrlSetState($ID, $GUI_HIDE)), потом на первой стадии показать нужные ($GUI_SHOW); или просто не прятать их изначально , и при нажатии Next/Back прятать предыдущие (можно сделать счётчик нажатии кнопок вперёд/назад) и показывать нужные для следующего этапа.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:50, 11-08-2007 | #286


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Diamond,
По поводу смены обоев - вот тут нашёл кое что:

Код: Выделить весь код
DllCall('shell32', 'long', 'SetWallpaper', 'string', $sFile, 'int', 0)
Но у меня почему то не работает

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 00:40, 12-08-2007 | #287


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Пытаюсь сделать функцию для массовой замены по тексту используя флаг “Whole word only” (только слово целиком) - Но всё что у меня получилось, так это замена нужного текста + тех символов которые считаются как разделителями между словами (Таб, пробел, перевод строки, возврат каретки, начало строки, и конец строки):

Код: Выделить весь код
$Ret = _StringReplace_WholeWord(@TAB & "test" & @CRLF & "_test_" & @CRLF, "test", "000", 0)
ConsoleWrite($Ret) ;@TAB'а уже нету :(

Func _StringReplace_WholeWord($String, $WhatToFind, $Replace, $MatchCaseParam=0)
    Local $CaseSenceStr = '(?i)'
    If $MatchCaseParam = 1 Then $CaseSenceStr = ''

        Local $RetVal = StringRegExpReplace($String, $CaseSenceStr & GetRegExpPattern($WhatToFind), $Replace)
    Return SetExtended(@extended, $RetVal)
EndFunc

Func GetRegExpPattern($Var)
    Return '\t' & $Var & '\z|\A' & _
        $Var & '\t|\t' & $Var & '\t|\t' & $Var & '\s|\s' & _
        $Var & '\t|\A' & $Var & '\s|\s' & $Var & '\z|\s' & _
        $Var & '\s|\n' & $Var & '\s|\n' & $Var & '\t|\n' & _
        $Var & '\r|\n' & $Var & '\z|\A' & $Var & '\n|\A' & _
        $Var & '\r|\t' & $Var & '\n|\t' & $Var & '\r|\r' & _
        $Var & '\s|\r' & $Var & '\t|\r' & $Var & '\n|\r' & _
        $Var & '\z|\n' & $Var & '\r|\A' & $Var & '\z'
EndFunc
Как можно построить подобную функцию?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 10:40, 12-08-2007 | #288


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
Но у меня почему то не работает
и не пытайся - код нерабочий. Это не функция и даже не объект, а интерфейс. Уже не раз пытался заюзать аналогичные... пока AutoIT не способен сконвертить обычный указатель в объект

Цитата:
Пытаюсь сделать функцию для массовой замены по тексту используя флаг “Whole word only”
не совсем понял что надо, но может пригодится:
Код: Выделить весь код
$s = @TAB & "test" & @CRLF & "_test_" & @CRLF
ConsoleWrite('---'&@CRLF&$s&@CRLF&'---'&@CRLF)
$r = _StringReplace_WholeWord($s, "test", "000", 0)
ConsoleWrite('---'&@CRLF&$r&@CRLF&'---'&@CRLF)

Func _StringReplace_WholeWord($String, $WhatToFind, $Replace, $MatchCaseParam=0)
    Local $CaseSenceStr = '(?i)'
    If $MatchCaseParam = 1 Then $CaseSenceStr = ''
    Local $RetVal = StringRegExpReplace($String, $CaseSenceStr & '\b'& $WhatToFind &'\b', $Replace)
    Return SetExtended(@extended, $RetVal)
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:49, 12-08-2007 | #289


Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Creat0R
Спасибо за примеры. Получил полное моральное удовлетворение.
Цитата:
То что ты задумал, имхо, не имеет отношения к MDI
Убедил! Хотя, взяв за основу приведённые тобой примеры наверное ещё немного поколдую. А для себя я всё-таки решил показывать/прятать контроли, думаю, так будет проще и удобнее.
Цитата:
По поводу смены обоев - вот тут
Попытался зайти по ссылке, но там пишут что ссылка устарела либо битая.
Цитата:
Но у меня почему то не работает
В shell32.dll нету функции "SetWallpaper"

Нашёл!!! http://www.autoitscript.com/forum/in...howtopic=50753 - конвертирует в BMP и устанавливает обои, но для самой функции нужна библиотека AutoItLib.au3 (Библиотеку можно найти там же)
Вот эта функция:
Код: Выделить весь код
#include <.\AutoItLib.au3>

Func _ChangeDesktopBackground($sFile, $iPosition=3)
    Local $sCLSID, $tBuffer, $hImage, $sTemp

    ; Convert JPG image to BMP image
    _GDI_Startup()
    $hImage = _GDI_LoadFromFile($sFile)
    $sCLSID = _GDI_GetEncoderCLSID("BMP")
    $sTemp  = _Str_ChangeFileExt($sFile, ".bmp")
    _GDI_SaveToFile($hImage, $sTemp, $sCLSID)
    _GDI_DisposeImage($hImage)
    _GDI_Shutdown()

    ; Set wallpaper position
    Switch $iPosition
        Case 1 ; Tile
            RegWrite('HKCU\Control Panel\Desktop', 'TileWallpaper' , 'reg_sz', '1')
            RegWrite('HKCU\Control Panel\Desktop', 'WallpaperStyle', 'reg_sz', '0')
            RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","TileWallpaper", "REG_SZ",'1')
            RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","WallpaperStyle","REG_SZ",'0')
        Case 2 ; Center
            RegWrite('HKCU\Control Panel\Desktop', 'TileWallpaper' , 'reg_sz', '0')
            RegWrite('HKCU\Control Panel\Desktop', 'WallpaperStyle', 'reg_sz', '0')
            RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","TileWallpaper", "REG_SZ",'0')
            RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","WallpaperStyle","REG_SZ",'0')
        Case 3 ; Stretch
            RegWrite('HKCU\Control Panel\Desktop', 'TileWallpaper' , 'reg_sz', '0')
            RegWrite('HKCU\Control Panel\Desktop', 'WallpaperStyle', 'reg_sz', '2')
            RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","TileWallpaper", "REG_SZ",'0')
            RegWrite("HKCU\Software\Microsoft\Internet Explorer\Desktop\General","WallpaperStyle","REG_SZ",'2')
    EndSwitch

    ; Set wallpaper
    $tBuffer = DllStructCreate("char Text[" & StringLen($sTemp) + 1 & "]")
    DllStructSetData($tBuffer, "Text", $sTemp)
    _API_SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, DllStructGetPtr($tBuffer), BitOR($SPIF_UPDATEINIFILE, $SPIF_SENDCHANGE))
EndFunc
Добавил дополнительные параметры для реестра - если этого не сделать, то при скрытии значков рабочего стола будут отображаться другие обои.

Последний раз редактировалось Diamond, 12-08-2007 в 17:53. Причина: Добавил ссылку на библиотеку и поправил код

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:05, 12-08-2007 | #290



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход