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

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

Ответить
Настройки темы
[решено] Выбор цвета фона для всплывающей подсказки в окне настроек Windows

Аватара для beve

Старожил


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


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

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


Ранее пробовал создать файл *.theme из нужными мне настройками, но ввиду того что некоторые настройки пропадают при такой настройке, решил это делать походу.
Проблема в следующем, как в приведенном примере, можно выбрать Желтый цвет для вспл.подсказки, вернее не желтый а немного желтый (на глаз), если удасться, то выбрать другой цвет уже будет дело техники...
Код: Выделить весь код
#Include <GuiTab.au3>
#Include <GuiComboBoxEx.au3>
Global $sTitle="Свойства: Экран"
Global $sTitle2="Дополнительное оформление"

; Это нужно для того, чтоб закрыть, если открыто Главное окно: "Окно Свойства:" Экран и дочерние окна, то есть одним ударом...Ну, во всяком случае для теста...
If ProcessExists ("rundll32.exe") Then 
    ProcessClose("rundll32.exe")
    ProcessWaitClose("rundll32.exe")
EndIf

Run('rundll32 shell32, Control_RunDLL desk.cpl,,') 
WinWait('Свойства: Экран','')

$hTab = ControlGetHandle($sTitle, "", "SysTabControl321")
_GUICtrlTab_ClickTab($hTab , 3)
Sleep(500)
ControlClick ($sTitle,'Оформление', '[CLASS:Button; INSTANCE:2]')
WinWait ($sTitle2,'')
WinActivate ($sTitle2,'')
WinWaitActive ($sTitle2,'')

$hCombo = ControlGetHandle($sTitle2, "", "ComboBox1")
;Настройка Всплывающая подсказка
    Global $ToolTips_nFont="Microsoft Sans Serif"
    Global $ToolTips_nFontSize="14"

$iIndex=_GUICtrlComboBoxEx_FindStringExact ($hCombo, "Всплывающая подсказка")
_GUICtrlComboBoxEx_SetCurSel($hCombo, $iIndex)
; ControlSend-ы нужны чтоб сделать активными соответствующее поле, пока без этого не выходит
ControlSend($sTitle2, "","ComboBox1","{DOWN}")
ControlSend($sTitle2, "","ComboBox1","{UP}")

$hCombo2 = ControlGetHandle($sTitle2, "", "ComboBox2")
$iIndex=_GUICtrlComboBoxEx_FindStringExact ($hCombo2, $ToolTips_nFont)
_GUICtrlComboBoxEx_SetCurSel($hCombo2, $iIndex)
ControlSend($sTitle2, "","ComboBox2","{DOWN}")
ControlSend($sTitle2, "","ComboBox2","{UP}")

$hCombo3 = ControlGetHandle($sTitle2, "", "ComboBox3")
$iIndex=_GUICtrlComboBoxEx_FindStringExact ($hCombo3, $ToolTips_nFontSize)
_GUICtrlComboBoxEx_SetCurSel($hCombo3, $iIndex)
ControlSend($sTitle2, "","ComboBox3","{DOWN}")
ControlSend($sTitle2, "","ComboBox3","{UP}")

#cs
; сохранить и закрыть
ControlClick($sTitle2, "","[CLASS:Button; INSTANCE:6]")
WinWaitClose ($sTitle2,'')
Sleep(500)
ControlClick($sTitle, "","[CLASS:Button; INSTANCE:3]")
WinWaitClose ($sTitle,'')
#ce
Мне нужно нажать на кнопку Цвет 1 и дальше на кнопку Другой чтоб установить нужные параметры цвета фона. Только нужно решение, которое естественно было бы без глюков.
Команда
ControlClick($sTitle2, "","[CLASS:Button; INSTANCE:1]") просто нажимает на кнопку Цвет 1 (но это по моему ненадежно), но вот никак не удается нажать на кнопку Другой.
Прошу помощи. И еще, может кто знает, где windows сохраняет эти измененные настройки темы, ибо может может можно просто подправить там некоторые параметры...

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 21:41, 13-01-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Как то так, но я уверен что есть метод по проще, с записью в реестр...

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

Opt("WinWaitDelay", 1)

Global $sTitle = "Свойства: Экран"
Global $sTitle2 = "Дополнительное оформление"

Global $ToolTips_nFont = "Microsoft Sans Serif"
Global $ToolTips_nFontSize = "14"

Global $ToolTips_BackColor = 0xD7D700 ;Kind of Yellow

If Not WinExists($sTitle) Then
    Run('rundll32 shell32, Control_RunDLL desk.cpl,,')
    WinWait($sTitle)
EndIf

WinActivate($sTitle)
WinWaitActive($sTitle)

$hTab = ControlGetHandle($sTitle, "", "SysTabControl321")
_GUICtrlTab_ClickTab($hTab, 3)

WinWait($sTitle, 'Default pane')

ControlClick($sTitle, 'Default pane', 'Button2')
WinWait($sTitle2)
WinActivate($sTitle2)
WinWaitActive($sTitle2)

$hCombo = ControlGetHandle($sTitle2, "", "ComboBox1")
;Настройка Всплывающая подсказка
$iIndex = _GUICtrlComboBoxEx_FindStringExact($hCombo, "Всплывающая подсказка")
_GUICtrlComboBoxEx_SetCurSel($hCombo, $iIndex)
; ControlSend-ы нужны чтоб сделать активными соответствующее поле, пока без этого не выходит
ControlSend($sTitle2, "", "ComboBox1", "{DOWN}")
ControlSend($sTitle2, "", "ComboBox1", "{UP}")

ControlSetText($sTitle2, "", "Edit2", $ToolTips_nFont)
ControlSetText($sTitle2, "", "Edit3", $ToolTips_nFontSize)

ControlClick($sTitle2, '', 'Button1')
WinWait('[CLASS:#32770]', 'Друго&й...')
ControlClick('[CLASS:#32770]', 'Друго&й...', 'Button1')

WinWait('[CLASS:#32770;TITLE:Цвет]')

$nRed = _ColorGetRed($ToolTips_BackColor)
$nGreen = _ColorGetGreen($ToolTips_BackColor)
$nBlue = _ColorGetBlue($ToolTips_BackColor)

ControlSetText('[CLASS:#32770;TITLE:Цвет]', '', 'Edit4', $nRed)
ControlSetText('[CLASS:#32770;TITLE:Цвет]', '', 'Edit5', $nGreen)
ControlSetText('[CLASS:#32770;TITLE:Цвет]', '', 'Edit6', $nBlue)

ControlClick('[CLASS:#32770;TITLE:Цвет]', '', 'Button2')

#cs
    ; сохранить и закрыть
    ControlClick($sTitle2, '', 'Button6')
    WinWaitClose($sTitle2)
    ControlClick($sTitle, '', 'Button3')
    WinWaitClose($sTitle)
#ce

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

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

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:42, 14-01-2010 | #2



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

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


Аватара для beve

Старожил


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

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


Цитата Creat0R:
так»
То что мне и было нужно. Спасибо за код.
Цитата Creat0R:
но я уверен что есть метод по проще, с записью в реестр... »
Искал, но тщетно...

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 01:12, 14-01-2010 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Выбор вложенных папок с рисунками в качестве фона рабочего стола [Desktop background] Ghost Microsoft Windows 7 20 17-03-2012 12:21
Интерфейс - Установка цвета фона папок в проводнике D.A.E. Microsoft Windows 2000/XP 13 14-12-2010 18:13
[решено] Изменение цвета фона ячейки таблицы при нажатии чекбокса dmitryst Вебмастеру 4 18-09-2008 03:59
Как пройти Выбор Фона... LizzyBorden Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 3 06-08-2007 10:57
Изменение цвета фона ячейки таблицы Pawel gor Вебмастеру 6 12-10-2003 00:19




 
Переход