Что нового

Фон и $Label

Fantasy22

Новичок
Сообщения
11
Репутация
0
Помогите разобраться с двумя проблемами отображения фонового рисунка и label в WinPE
При первом запуске (Автоматическом) скрипта не отображается фон окна, но при втором запуске (вручную) все нормально пока не запустишь программу из списка и исчезают надписи label.

Код:
#include <GUIConstantsEx.au3>
	#include <StaticConstants.au3>
	#include <WindowsConstants.au3>
	Opt("GUIOnEventMode", 1)

	$Form1 = GUICreate("Form1", 610, 425, -1, -1, $WS_POPUP)

	$Label1 = GUICtrlCreateLabel("Установка Windows", 160, 76, 302, 40)
	GUICtrlSetFont(-1, 23, 800, 4, "MS Sans Serif")
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetCursor (-1, 0)
	GUICtrlSetOnEvent(-1, "Label1Click")
	GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
	$Label2 = GUICtrlCreateLabel("Acronis True Image 2016", 160, 136, 362, 40)
	GUICtrlSetFont(-1, 23, 800, 4, "MS Sans Serif")
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetCursor (-1, 0)
	GUICtrlSetOnEvent(-1, "Label2Click")
	GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
	$Label3 = GUICtrlCreateLabel("Acronis Disk Director 12", 160, 200, 350, 40)
	GUICtrlSetFont(-1, 23, 800, 4, "MS Sans Serif")
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetCursor (-1, 0)
	GUICtrlSetOnEvent(-1, "Label3Click")
	GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
	$Label4 = GUICtrlCreateLabel("Total Commander 64 bit", 160, 272, 342, 40)
	GUICtrlSetFont(-1, 23, 800, 4, "MS Sans Serif")
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetCursor (-1, 0)
	GUICtrlSetOnEvent(-1, "Label4Click")
	GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
	$Label5 = GUICtrlCreateLabel("Выход", 280, 356, 105, 40)
	GUICtrlSetFont(-1, 23, 800, 4, "MS Sans Serif")
	GUICtrlSetColor(-1, 0xFFFFFF)
	GUICtrlSetCursor (-1, 0)
	GUICtrlSetOnEvent(-1, "Form2Close")
	GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
	GUISetState(@SW_SHOW)
	$Pic1 = GUICtrlCreatePic("Image\01.bmp", 0, 0, 610, 425)
	#EndRegion ### END Koda GUI section ###

	While 1
		Sleep(100)
	WEnd

	Func Form2Close()
	  Exit
    EndFunc
    Func Label1Click()
	  Run('X:\Setup1.exe')
	EndFunc
	Func Label2Click()
	  Run('X:\Program Files\Acronis\TrueImageHome\trueimage_starter.exe')
	EndFunc
	Func Label3Click()
	  Run('X:\Program Files\Acronis\Test Program\trueimage_starter.exe')
	EndFunc
	Func Label4Click()
	  Run('X:\Program Files\Total Commander\TOTALCMD64.EXE')
	EndFunc
 

Вложения

  • Clipboard121.png
    Clipboard121.png
    12.6 КБ · Просмотры: 10
  • Clipboard3.png
    Clipboard3.png
    92 КБ · Просмотры: 18

InnI

AutoIT Гуру
Сообщения
4,958
Репутация
1,448
WinPE нет, поэтому можно только гадать... Попробуйте картинку создать первой и заблокировать
Код:
...
$Form1 = GUICreate("Form1", 610, 425, -1, -1, $WS_POPUP)

$Pic1 = GUICtrlCreatePic("Image\01.bmp", 0, 0, 610, 425)
GUICtrlSetState(-1, $GUI_DISABLE)

$Label1 = GUICtrlCreateLabel("Установка Windows", 160, 76, 302, 40)
...


При первом запуске (Автоматическом) скрипта
Автоматическом - это как?
 
Автор
F

Fantasy22

Новичок
Сообщения
11
Репутация
0
Автоматически имелось в виду через файл winpeshl.ini.
Блокировка фона помогла только при исчезании текста, а при первом запуске все равно не отображается фон пока не запустишь программку повторно.
 

InnI

AutoIT Гуру
Сообщения
4,958
Репутация
1,448
Fantasy22
при первом запуске все равно не отображается фон
Я вижу два варианта: не найден файл или нет возможности рисования. Попробуйте в начале скрипта установить задержку на несколько секунд через Sleep(). Возможно, некоторые компоненты, необходимые для отрисовки картинки, ещё не загружены. Также проверьте - определяется ли путь к файлу. В случае необходимости используйте макрос
Код:
@ScriptDir
Дополнительно, можно попробовать сначала отобразить окно, а потом создавать на нём элементы.
 
Автор
F

Fantasy22

Новичок
Сообщения
11
Репутация
0
Проблема была с определением пути к картинки
Есть еще один вопрос: Как сделать анимацию чтобы элементы расположенные в окне открывались вместе с анимацией окна как при закрытии
 

Вложения

  • 11.7z
    41.3 КБ · Просмотры: 3

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Fantasy22
Сделать фон с кнопками. Перед закрытием удалил кнопки (они остались на фоне-рисунке), а далее анимация. Фон с кнопками лучше сгенерировать в Temp, чтобы шрифт совпадал со шрифтом текущей системы.
 
Верх