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

Показать сообщение отдельно

Ветеран


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

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


Вложения
Тип файла: 7z Icons.7z
(6.9 Kb, 52 просмотров)

Внес изменения в код, но не помогло. Вот, что получилось:
читать дальше »
Код: Выделить весь код
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Windows.ico
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Description=Resources Test Script
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_Language=1033
#AutoIt3Wrapper_Res_Icon_Add= ok.ico
#AutoIt3Wrapper_Res_Icon_Add= error.ico
#AutoIt3Wrapper_Run_AU3Check=n
#AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, MySound.wav, SOUND, 200, 0
#AutoIt3Wrapper_Res_Icon_Add= refresh.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <GuiButton.au3>
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <Icons.au3>
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>

#Include <Resources.au3>

Global $Pic1_1, $Pic3_1, $Pic1_2, $Pic2_2, $Pic3_2, $PicError, $sLogI1_1, $sLogI1_2, $sLogI2_2, $sLogI3_1, $sLogI3_2, $hIcon, $Width = 14, $Height = 14
Global $Save_Event, $Save_MU, $Save_BITS, $sLog1_2, $sLog2_2, $sLog3_2, $sLog1_1, $sLog3_1

Global $aIcons[2] = [_ResourceSetImageToCtrl('error.ico'), _ResourceSetImageToCtrl('ok.ico')]
For $i = 0 To 1
    $hIcon = _Icons_Icon_Extract($aIcons[$i], 0, $Width, $Height)
	$aIcons[$i] = _Icons_Bitmap_CreateFromIcon($hIcon)
	_WinAPI_DestroyIcon($hIcon)
Next

Global $hImageListRefresh = _GUIImageList_Create(16, 16, 5)
_ResourceSetImageToCtrl(-1, "refresh.ico")





Opt("GUIOnEventMode", 1)

$hMain_GUI = GUICreate("Диагностика и Настройка", 619, 442, 189, 122)
GUISetFont(8.5, 400, 0, 'MS Shell Dlg')
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

$Tab1 = GUICtrlCreateTab(8, 16, 601, 377)

;;;; Hotfixes ;;;;
$HotfixErrors = GUICtrlCreateTabItem("HotfixErrors")

$Button_HotFixesUpdate = _GUICtrlCreateButtonEx4("Обновить", 510, 400, 85, 33, 'refresh.ico', -5)
GUICtrlSetTip(-1, "Обновить текущее состояние вкладки")
GUICtrlSetOnEvent($Button_HotFixesUpdate, "_HotFixes_Update")

; Работа со службами
GUICtrlCreateGroup("Службы, отвечающие за Автообновление", 16, 330, 370, 55)

GUICtrlCreateLabel("Автоматич. обновление", 24, 348, 75, 30, $BS_MULTILINE)
GUICtrlSetTip(-1, "тс - текущее состояние службы, тз - тип запуска службы")
GUICtrlCreateLabel("тс", 95, 348, 15, 15)
GUICtrlCreateLabel("тз", 95, 361, 15, 15)

GUICtrlCreateLabel("Фоновая Интел. Служба", 143, 348, 75, 30, $BS_MULTILINE)
GUICtrlCreateLabel("тз", 229, 361, 15, 15)

GUICtrlCreateLabel("Журнал Событий", 282, 348, 75, 30, $BS_MULTILINE)
GUICtrlCreateLabel("тс", 335, 348, 15, 15)
GUICtrlCreateLabel("тз", 335, 361, 15, 15)


$Pic1_1 = GUICtrlCreatePic('', 115, 348, $Width, $Height)
$Pic3_1 = GUICtrlCreatePic('', 355, 348, $Width, $Height)
$Pic1_2 = GUICtrlCreatePic('', 115, 361, $Width, $Height)
$Pic2_2 = GUICtrlCreatePic('', 249, 361, $Width, $Height)
$Pic3_2 = GUICtrlCreatePic('', 355, 361, $Width, $Height)
; запуск и сбор информации о текущем состоянии служб
_ServicesStat()

$Button_StartOptim = GUICtrlCreateButton("Старт", 478, 342, 55, 35, $BS_MULTILINE)
GUICtrlSetOnEvent($Button_StartOptim, "_StartOptim")
$Button_Save = GUICtrlCreateButton("Сохранить", 400, 342, 65, 35, $BS_MULTILINE)
GUICtrlSetOnEvent($Button_Save, "_SaveOld")
GUICtrlSetState(-1, $GUI_FOCUS)
$Button_Restore = GUICtrlCreateButton("Откат", 545, 342, 55, 35, $BS_MULTILINE)
GUICtrlSetOnEvent($Button_Restore, "_RestoreOld")

GUICtrlCreateTabItem("")

GUISetState()
_ResPlaySound('#200')
While 1
    Sleep(100)
WEnd

Func CLOSEClicked()
  Exit
EndFunc

Func _GUICtrlCreateButtonEx4($sText, $iLeft, $iTop, $iWidth = -1, $iHeight = -1, $sIconFile = "", $iIconIndex = 0)
    Local $nButton = GUICtrlCreateButton($sText, $iLeft, $iTop, $iWidth, $iHeight)
    _GUIImageList_AddIcon($hImageListRefresh, $sIconFile, $iIconIndex)
    _GUICtrlButton_SetImageList($nButton, $hImageListRefresh)
    Return $nButton
EndFunc


;; Hotfixes Section ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; функция сохранения текущих настроек служб
Func _SaveOld()
 GUICtrlSetState($Button_Save, $GUI_DISABLE)
 Dim $aSvcState[5]=['boot','system','auto','demand','disabled']
$Save_MU   = $aSvcState[$sLog1_2]
$Save_BITS = $aSvcState[$sLog2_2]
$Save_Event= $aSvcState[$sLog3_2]
 sleep(1000)
 GUICtrlSetState($Button_Save, $GUI_ENABLE)
EndFunc

; функция оптимизации настроек служб для запуска и работы MU
Func _StartOptim()
	GUICtrlSetState($Button_StartOptim, $GUI_DISABLE)
	RunWait('sc config BITS start= demand', '', @SW_HIDE)
	RunWait('sc config wuauserv start= auto', '', @SW_HIDE)
	RunWait('sc start wuauserv', '', @SW_HIDE)
	RunWait('sc config EventLog start= auto', '', @SW_HIDE)
	RunWait('sc start EventLog', '', @SW_HIDE)
     sleep(1000)
   _ServicesStat()
   sleep(1000)
   GUICtrlSetState($Button_StartOptim, $GUI_ENABLE)
EndFunc
; функция откат состояния служб к старым конфигурациям
Func _RestoreOld()
 GUICtrlSetState($Button_Restore, $GUI_DISABLE)
 RunWait('sc config eventlog start= ' & $Save_Event &'', '', @SW_HIDE)
 RunWait('sc config wuauserv start= ' & $Save_MU &'', '', @SW_HIDE)
 RunWait('sc config BITS start= ' & $Save_BITS &'', '', @SW_HIDE)
  sleep(1000)
 _ServicesStat()
 sleep(1000)
 GUICtrlSetState($Button_Restore, $GUI_ENABLE)
EndFunc

; функция кнопки "Обновить"  обновление информации о текущем состоянии служб
Func _HotFixes_Update()
	 GUICtrlSetState($Button_HotFixesUpdate, $GUI_DISABLE)
     _ServicesStat()
     sleep(1000)
     GUICtrlSetState($Button_HotFixesUpdate, $GUI_ENABLE)
 EndFunc

; функция сбора информации о текущем состоянии служб (используется SC и обработка полученного вывода через  StringRegExpReplace)и вывод через иконки данной информации на форму)
Func _ServicesStat()

  $sLog1_1 = ''
  $sLog1_2 = ''
  $sLog2_2 = ''
  $sLog3_1 = ''
  $sLog3_2 = ''

;  запрос информации о состоянии служб (текущее состояние: работает или нет)
 $hIPconfig1_1 = Run('sc query wuauserv', '', @SW_HIDE, $STDOUT_CHILD)
 $hIPconfig3_1 = Run('sc query eventlog', '', @SW_HIDE, $STDOUT_CHILD)
;  запрос информации о типе запуска служб (авто, вручную, отключено)
 $hIPconfig1_2 = Run('sc qc wuauserv', '', @SW_HIDE, $STDOUT_CHILD)
 $hIPconfig2_2 = Run('sc qc BITS', '', @SW_HIDE, $STDOUT_CHILD)
 $hIPconfig3_2 = Run('sc qc eventlog', '', @SW_HIDE, $STDOUT_CHILD)

 While 1
    $sLogI1_1 &= StdoutRead($hIPconfig1_1)
	$sLogI3_1 &= StdoutRead($hIPconfig3_1)

	$sLogI1_2 &= StdoutRead($hIPconfig1_2)
	$sLogI2_2 &= StdoutRead($hIPconfig2_2)
	$sLogI3_2 &= StdoutRead($hIPconfig3_2)

	 If @error Then ExitLoop
    Sleep(10)
 WEnd

; фильтрация информации о службах
  $sLog1_1 = StringRegExpReplace($sLogI1_1, "(?si).*STATE\D*(\d+).*", '\1')
  $sLog3_1 = StringRegExpReplace($sLogI3_1, "(?si).*STATE\D*(\d+).*", '\1')
  $sLog1_2 = StringRegExpReplace($sLogI1_2, "(?si).*START_TYPE\D*(\d+).*", '\1')
  $sLog2_2 = StringRegExpReplace($sLogI2_2, "(?si).*START_TYPE\D*(\d+).*", '\1')
  $sLog3_2 = StringRegExpReplace($sLogI3_2, "(?si).*START_TYPE\D*(\d+).*", '\1')
; программиорование отображение информации о службах через иконки

_SetHImage($Pic1_1, $aIcons[$sLog1_1 = 4])
_SetHImage($Pic3_1, $aIcons[$sLog3_1=4])
_SetHImage($Pic1_2, $aIcons[$sLog1_2=2])
_SetHImage($Pic2_2, $aIcons[(($sLog2_2 = 3) Or ($sLog2_2 = 2))])
_SetHImage($Pic3_2, $aIcons[$sLog3_2=2])
_SetHImage($PicError, $aIcons[$sLog3_1=4])

EndFunc

Прикрепил полный рабочий набор (см. аттач), включая библиотеку и все файлы

-------
мы рождены, чтоб сказку сделать былью


Последний раз редактировалось saavaage, 02-10-2010 в 14:19.


Отправлено: 00:04, 30-09-2010 | #4