|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Внедрение иконок в скомпилированный скрипт (использование AutoIt3Wrapper) |
|
[решено] Внедрение иконок в скомпилированный скрипт (использование AutoIt3Wrapper)
|
Ветеран Сообщения: 903 |
Профиль | Отправить PM | Цитировать
Суть:
попробовал внедрить при компиляции иконки в будущий исполняемый файл. Все, что удалось добиться, - внедрить иконку windows.ico и музыку. Остальные иконки встроились, но не работают. Библиотеку вроде активировал, но не знаю, какие функции из нее использовать и как ими заставить работать все иконки. Код: Подскажите как их заставить работать, плиз PS Autoit 3.3.6.1 Полный архив с иконками, AutoIt3Wrapper, библиотекой, ResHacker и т.д. - в аттаче - см. пост: http://forum.oszone.net/post-1507813-4.html |
|
------- Отправлено: 00:37, 29-09-2010 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, да, можно! Я почему-то думал, что эта функция не применяется для вкладок, только для формы в целом.
Вопрос - а вариант из массива в массив реализуем или нет? |
------- Отправлено: 19:25, 01-10-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Цитата saavaage:
|
|
Отправлено: 19:41, 01-10-2010 | #12 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, пока только 1 причина - слишком много прийдется переделывать. Так все было завязано на нем. Если бы удалось закинуть иконки в него, то этим все и ограничилось бы. Ну и любопытство, конечно. Я пытался, но не получилось. Вот подумал, что Вы подскажете и мне знаний добавится в "копилку".
Ладно, спасибо Вам пребольшое. |
------- Отправлено: 19:55, 01-10-2010 | #13 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:11, 01-10-2010 | #14 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, что-то у меня есть смутное подозрение., что на нескольких вкладках это не пройдет. Я имею ввиду вариант с
$Icon1 = GUICtrlCreateIcon(@ScriptFullPath, $aIcons[0], 16, 40, 48, 48) Сейчас буду проверять... |
------- Отправлено: 20:31, 01-10-2010 | #15 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, к сожалению, похоже данный вариант не имеет привязки к конкретной вкладке и при обновлении индикаторов, происходит их отрисовка на всех вкладках формы.
Вот такие котелки... |
------- Отправлено: 23:22, 01-10-2010 | #16 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Совсем не так ? доработй этот пример чтобы иконки показывались одновременно.
$Form1 = GUICreate("", 228, 231) $Tab1 = GUICtrlCreateTab(24, 16, 185, 193) $TabSheet1 = GUICtrlCreateTabItem("1") $Icon2 = GUICtrlCreateIcon("shell32.dll", 23, 120, 144, 48, 48) $TabSheet2 = GUICtrlCreateTabItem("2") $Icon1 = GUICtrlCreateIcon("shell32.dll", 28, 40, 48, 48, 48) GUICtrlCreateTabItem("") GUISetState() Do Until GUIGetMsg() = -3 |
Отправлено: 01:18, 02-10-2010 | #17 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, почему тогда у меня не работает этот вариант:
А именно, не передается информация из GuiCtrlSetData($Pic1_1, 1) и GuiCtrlSetData($Pic1_2, 1) в GUICtrlCreateIcon(@ScriptFullPath, $Pic1_1, 115, 348, 16, 16) GUICtrlCreateIcon(@ScriptFullPath, $Pic1_2, 115, 361, 16, 16) Дело в том, что в моем случае иконки не статичные, а должны меняться в зависимости от состояния службы... А при нажатии на кнопку "Обновить" должно повторно обновляться состояние иконок в зависимости от состояния службы на данный момент. |
------- Последний раз редактировалось saavaage, 02-10-2010 в 03:02. Отправлено: 02:45, 02-10-2010 | #18 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Вроде на моём примере показано что каждую иконку надо располагать на своей вкладке!!
И можно рабочие примеры выкладывать, мне самому приходится инклиды подставлять. #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Include <GuiButton.au3> #Include <GuiImageList.au3> Global $Pic1_1, $Pic1_2, $P1_1, $P1_2, $sLogI1_1, $sLogI1_2 Global $sLog1_2, $sLog1_1 Global $hImageListCom[4] Global $Icon_Hotfix, $Icon_HotfixErrors Opt("GUIOnEventMode", 1) $hMain_GUI = GUICreate("Диагностика и Настройка", 619, 442, 189, 122) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") _IconCom() $Tab1 = GUICtrlCreateTab(8, 16, 601, 377) $HotfixErrors = GUICtrlCreateTabItem("HotfixErrors") $Button_HotFixesUpdate = GUICtrlCreateButton("Обновить", 510, 400, 85, 33, 0) _GUICtrlButton_SetImageList($Button_HotFixesUpdate, $hImageListCom[2]) GUICtrlSetOnEvent($Button_HotFixesUpdate, "_HotFixes_Update") _ServicesStat() $Icon_HotfixErrors = GUICtrlCreateIcon("shell32.dll", 23, 115, 348, 16, 16) $Hotfix = GUICtrlCreateTabItem("Hotfix") $Icon_Hotfix = GUICtrlCreateIcon("shell32.dll", 28, 115, 361, 16, 16) GUICtrlCreateTabItem("") GUISetState() While 1 Sleep(1000) WEnd Func CLOSEClicked() Exit EndFunc Func _IconCom() If @Compiled Then For $iListCom = 0 To 3 $hImageListCom[$iListCom] = _GUIImageList_Create(16, 16, 5, 3, 6) Local $aImageCom[5] = [$iListCom, $iListCom, $iListCom, $iListCom, $iListCom] ; [Иконка наложения , при наведении , при нажатии , нет , иконка после нажатия на кнопку] For $f = 0 To UBound($aImageCom) - 1 _GUIImageList_AddIcon($hImageListCom[$iListCom], @ScriptFullPath, $aImageCom[$f], True) Next Next EndIf 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 = '' ; запрос информации о состоянии служб (текущее состояние: работает или нет) $hIPconfig1_1 = Run('sc query wuauserv', '', @SW_HIDE, "") ; запрос информации о типе запуска служб (авто, вручную, отключено) $hIPconfig1_2 = Run('sc qc wuauserv', '', @SW_HIDE, "") While 1 $sLogI1_1 &= StdoutRead($hIPconfig1_1) $sLogI1_2 &= StdoutRead($hIPconfig1_2) If @error Then ExitLoop Sleep(10) WEnd ; фильтрация информации о службах $sLog1_1 = StringRegExpReplace($sLogI1_1, "(?si).*STATE\D*(\d+).*", '\1') $sLog1_2 = StringRegExpReplace($sLogI1_2, "(?si).*START_TYPE\D*(\d+).*", '\1') ; программиорование отображение информации о службах через иконки IF $sLog1_1 = 4 Then ;~ GuiCtrlSetData($Pic1_1, 2) GUICtrlSetImage($Icon_Hotfix, "shell32.dll", 5) Else ;~ GuiCtrlSetData($Pic1_1, 1) GUICtrlSetImage($Icon_Hotfix, "shell32.dll", 22) EndIf IF $sLog1_2 = 2 Then ;~ GuiCtrlSetData($Pic1_2, 2) GUICtrlSetImage($Icon_HotfixErrors, "shell32.dll", 5) Else ;~ GuiCtrlSetData($Pic1_2, 1) GUICtrlSetImage($Icon_HotfixErrors, "shell32.dll", 22) EndIf EndFunc |
Отправлено: 03:16, 02-10-2010 | #19 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать FlatX007, они обе должны быть на одной... Рабочий не выкладывал, т.к. пришлось бы и иконки кидать...Думал Вы навскидку скажете.. Пардон.
|
------- Отправлено: 03:18, 02-10-2010 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
AutoIt3Wrapper: Company и OriginalFileName? | semiono | AutoIt | 6 | 10-08-2010 22:46 | |
[решено] Использование некоторых функций AutoIt3Wrapper Gui | FlatX007 | AutoIt | 8 | 08-07-2009 18:26 | |
[решено] возможно ли в скомпилированный файл вложить сторонние модули | Intexid | AutoIt | 3 | 20-05-2009 14:53 | |
Скомпилированный HTML-файл справки | alex6719 | Microsoft Windows 95/98/Me (архив) | 1 | 29-09-2004 11:34 | |
Нет иконок на раб. столе, размер иконок | Unixman | Microsoft Windows 2000/XP | 6 | 21-07-2003 10:14 |
|