Что нового

Можно ли собрать картинки в Dll и как потом вызвать через imagesearch

xishnik

Новичок
Сообщения
51
Репутация
0
Подскажите как можно собрать свои картинки в 1 DLL файл, и как потом из imagesearch к нему обращаться.
 

OsiWops

Новичок
Сообщения
9
Репутация
0
Уважаемые пользователи AutoIt'a, меня тоже интересует данный вопрос.
Возможно есть способ используя *.dll или другой формат объединить все файлы *.bmp в один и потом из функции ImageSearch() вызывать их?

Пример:
Имеются несколько файлов: 1.bmp, 2.bmp, ... , n.bmp
Объединить все эти *.bmp файлы в один FILE.***
И при использовании функции imagesearch() обращайся к этим *.bmp файлам непосредственно находящимся в нашем FILE.***, что бы не заваливать папку с программой кучей картинок.
 

nsgenn

Новичок
Сообщения
52
Репутация
1
Воспользоваться редактором ресурсов и прикрепить к EXE файлу все свои картинки:
http://autoit-script.ru/index.php/topic,2849.0.html
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Насчет файлов bmp, как уже указывалось выше читайте F.A.Q и используйте директивы AutoIt3Wrapper'а.
А вот иконки внедрить в один файл dll можно. Есть скрипт MakeIconsDll.au3 - уж не помню кто его выкладывал - кажется Yashied. С его помощью иконки можно легко в dll сконветировать командной батника:
Код:
AutoIt3.exe MakeIconsDll.au3 "путь до папки с иконками\ICO"  имя_конечного_файла.dll
И дале работаем с ними как обычными ресурсами извлекаемыми по номерам.
На форуме его не нашел - поэтому если кому нужно скачать здесь
 

OsiWops

Новичок
Сообщения
9
Репутация
0
Всем спасибо за ответы. Но даже с этой информацией у меня ничего не вышло. Либо лыжи не едут, либо я ...
PS: Google - более полезной информации на эту тему тоже не дал.

вот непосредственно код:
Код:
#Region
#AutoIt3Wrapper_Res_File_Add=RST.bmp, 2, 200
#EndRegion

#Include <Icons.au3>
#Include <WinAPIEx.au3>
#include <ImageSearch.au3>

HotKeySet("{F2}","StartProg") ; запуск программы по нажатию F2
HotKeySet("{F10}","OnExit") ; закрыть программу по нажатию F10

While 1
	
WEnd

Func StartProg() ; запуск программы по нажатию F2
	$hInstance = _WinAPI_GetModuleHandle(0) ; получаем HANDLE нашего модуля
 	$hBitmap = _WinAPI_LoadBitmap($hInstance, 200) ; подгружаем битмап из ресурсов
	$x=0
	$y=0
	$result = _ImageSearch($hBitmap, 1, $x, $y, 50) ; ищем изображение на экране
		If $result = 1 Then
			MouseClick('left', $x, $y, 1) ; нажимаем 1 раз ЛКМ, по найденному изображению
		EndIf	
EndFunc

Func OnExit() ; закрыть программу по нажатию F10
	Exit
EndFunc

Может, кто поможет понять почему этот код не работает?. После компиляции и запуска exe файла, ничего не происходит (как обычно происходит если нет bmp файла)

Если заменить строку:
Код:
$result = _ImageSearch($hBitmap, 1, $x, $y, 50) ; ищем изображение на экране
на эту, то все работает. Но мне нужно, что бы папка с программой не была завалена кучей битмапов.
Код:
$result = _ImageSearch("RST.bmp", 1, $x, $y, 50) ; ищем изображение на экране
 
Верх