Что нового

[Окна, Диалоги] Как добавить иконку в заголовок MsgBox и в панель задач после запуска скрипта

Xabib2302

Новичок
Сообщения
49
Репутация
0
Как добавить иконку в заголовок MsgBox и в панель задач после запуска скрипта?

Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Install.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Global $sESETVer, $sHKLM = "HKLM"
If @OSArch <> "X86" Then $sHKLM &= 64
; Читает версию из реестра
$sESETVer = RegRead($sHKLM & "\SOFTWARE\ESET\ESET Security\CurrentVersion\Info", "ProductVersion")
; Сравниваем версию из реестра и из msi файла
$iResult = StringCompare(Execute_MSI_Query(@ScriptDir & '\ESET.msi','ProductVersion'), $sESETVer)
; Записываем результат совпадения версии
IniWrite('Result.ini','Result',$iResult, "Установка прошла успешно!")
; Читает из INI-файла параметр 'Key' в секции 'Result'.
$sRead = IniRead('Result.ini','Result','0','Установка была прервана!')
; При отсутствии ключа возвращается значение по умолчанию
MsgBox(48,'Установка — ESET',$sRead)
FileDelete('Result.ini')
Func Execute_MSI_Query($MSIPath, $PropertyName)
    If FileExists($MSIPath) And $PropertyName <> '' Then

        Local $Query = "SELECT Value FROM Property WHERE Property = '" & $PropertyName & "'"

        $oInstaller = ObjCreate("WindowsInstaller.Installer")
        $oDB = $oInstaller.OpenDataBase($MSIPath, 0)
        $oView = $oDB.OpenView($Query)

        $oView.Execute()

        $oRecords = $oView.Fetch
        $oPropValue = $oRecords.StringData(1)

        If $oPropValue <> "" Then
            Return $oPropValue
        EndIf

    EndIf

    Return ""
EndFunc
 

joiner

Модератор
Локальный модератор
Сообщения
3 061
Репутация
513
создать свое окно, которое будет имитировать окно сообщений
 
Автор
X

Xabib2302

Новичок
Сообщения
49
Репутация
0
joiner
можно пример. я в gui полный ноль
 

joiner

Модератор
Локальный модератор
Сообщения
3 061
Репутация
513
это всего лишь набросок. можно подгонять окно под размер строки(смотреть тему)
соответственно, можно использовать любой цвет, кнопки, картинки и прочее

Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Install.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Global $sESETVer, $sHKLM = "HKLM"
If @OSArch <> "X86" Then $sHKLM &= 64
; Читает версию из реестра
$sESETVer = RegRead($sHKLM & "\SOFTWARE\ESET\ESET Security\CurrentVersion\Info", "ProductVersion")
; Сравниваем версию из реестра и из msi файла
$iResult = StringCompare(Execute_MSI_Query(@ScriptDir & '\ESET.msi', 'ProductVersion'), $sESETVer)
; Записываем результат совпадения версии
IniWrite('Result.ini', 'Result', $iResult, "Установка прошла успешно!")
; Читает из INI-файла параметр 'Key' в секции 'Result'.
$sRead = IniRead('Result.ini', 'Result', '0', 'Установка была прервана!')
; При отсутствии ключа возвращается значение по умолчанию
_GUIMSG('Установка — ESET', 200, 60, -1, -1, $sRead)
FileDelete('Result.ini')
Func Execute_MSI_Query($MSIPath, $PropertyName)
	If FileExists($MSIPath) And $PropertyName <> '' Then

		Local $Query = "SELECT Value FROM Property WHERE Property = '" & $PropertyName & "'"

		$oInstaller = ObjCreate("WindowsInstaller.Installer")
		$oDB = $oInstaller.OpenDataBase($MSIPath, 0)
		$oView = $oDB.OpenView($Query)

		$oView.Execute()

		$oRecords = $oView.Fetch
		$oPropValue = $oRecords.StringData(1)

		If $oPropValue <> "" Then
			Return $oPropValue
		EndIf

	EndIf

	Return ""
EndFunc   ;==>Execute_MSI_Query

Func _GUIMSG($Title, $w, $h, $x, $y, $text)
	Local $hGui = GUICreate($Title, $w, $h, $x, $y)
	Local $Label = GUICtrlCreateLabel($text, $x + 10, $y + 25, $w - 20, 30)
	GUISetIcon('shell32.dll', -155);смотреть описание функции
	GUISetState()
	While 1
		Switch GUIGetMsg()
			Case -3
				GUIDelete($hGui)
				Return
		EndSwitch
	WEnd
EndFunc   ;==>_GUIMSG
 
Верх