ImageList 명령어는 서브커맨드에 따라 이미지리스트에 이미지를 추가하거나 가져오거나 설정하는 명령어입니다. ImageListSearch 에 사용하는 이미지리스트를 만들때 사용하면 유용합니다.
ImageList , sub-command, hBmpListVar, hBmpVar, [option]
[결과값]
ErrorLevel = 0: 명령어수행 완료
ErrorLevel = 1: 명령어수행 실패
ErrorLevel = 2: 이미지리스트 오류 (Get,Set 에서만 사용하며 필수옵션이 없어도 발생)
[변수]
hBmpListVar : 이미지리스트 비트맵 핸들용 변수
hBmpVar : 파트이미지 비트맵 핸들용 변수
[서브커맨드]
Add : 이미지리스트에 파트이미지를 추가합니다.
(출력변수 : hBmpListVar , 입력변수 : hBmpVar)
Get : 이미지리스트에서 선택한 파트이미지를 가져옵니다.
(출력변수 : hBmpVar , 입력변수 : hBmpListVar)
Set : 이미지리스트의 파트이미지를 교체합니다.
(출력변수 : hBmpListVar , 입력변수 : hBmpListVar, hBmpVar)
[Add 서브커맨드 옵션]
*WidthList : 가로이미지리스트 일때 사용
*SrcNotDel : 명령어 사용후 'hBmpVar' 변수의 비트맵핸들을 초기화 하지 않음
*BackgroundN : N값은 컬러명 또는 RGB 값
(ex. *BackgroundBlack, *BackgroundWhite, *Background0xFFFFAA)
[Get 서브커맨드 옵션]
*ListMaxNN : 필수옵션, NN값은 이미지리스트상의 파트이미지 총개수
*SelectNN : 필수옵션, NN값은 1부터 시작하는 파트이미지 인덱스
*WidthList : 가로이미지리스트 일때 사용
*ListNotDel : 명령어 사용후'hBmpListVar' 변수의 비트맵핸들을 초기화 하지 않음
*UseZeroIndex : 이미지리스트의 시작인덱스를 1이 아닌 0을 사용
[Set 서브커맨드 옵션]
*ListMaxNN : 필수옵션, NN값은 이미지리스트상의 파트이미지 총개수
*SelectNN : 필수옵션, NN값은 1부터 시작하는 파트이미지 인덱스
*WidthList : 가로이미지리스트 일때 사용
*ListNotDel : 명령어 사용후 'hBmpListVar' 변수로 입력받은 비트맵핸들을 초기화 하지 않음
*SrcNotDel : 명령어 사용후 'hBmpVar' 변수의 비트맵핸들을 초기화 하지 않음
*UseZeroIndex : 이미지리스트의 시작인덱스를 1이 아닌 0을 사용
[주의]
- 출력변수로 받은 HBITMAP 핸들은 사용이 끝난 후 초기화 해주세요. (ex. DllCall("DeleteObject", Ptr,hBitmap)
- ImageListSearch 명령어에 사용할 이미지리스트를 만들때는 *WidthList 옵션을 넣지 마세요.
아래 샘플스크립트는 F1 키로 마우스 위치의 이미지를 캡춰 한후 이미지리스트에 계속 추가 할 수 있으며 F2 키로 이미지리스트를 비트맵파일로 저장하는 스크립트 입니다.
Test.ahk 파일을 다운로드한 'Ahk+ 전용 AutoHotkey.exe 파일' 위에 드래그해서 실행하세요.
<테스트 스크립트중 일부>
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
captureWidth := 20
captureHeight := 20
RectWindow:
Gui 2: +LastFound
Gui 2: -Caption +AlwaysOnTop
Gui 2: Color, EEAA99
Gui 2: Add, Text, w%captureWidth% h%captureHeight% Border vBorder hwndhwndBorder
Gui 2: Show
WinSet, TransColor, EEAA99 255
hwndRectWin := WinExist()
WinGetPos, borderx,bordery,,, ahk_id %hwndBorder%
WinGetPos, rectwinx,rectwiny,,, ahk_id %hwndRectWin%
gapx := borderx-rectwinx , gapy := bordery-rectwiny
Loop
{
MouseGetPos, capx,capy
capx -= gapx , capy -= gapy+captureHeight
WinMove, ahk_id %hwndRectWin%,, capx, capy
Tooltip, F1:이미지리스트추가
sleep, 10
}
return
;현재 영역 캡춰 후 이미지리스트에 추가
F1::
WinGetPos, x,y,w,h, ahk_id %hwndBorder%
ImageGet, hBitmap, x+1,y+1,w-2,h-2,, *WH
ImageList, Add, hImageList, hBitmap ;hBitmap 핸들은 ImageList 명령어 사용 후 초기화 됩니다.
sleep, 300
return
;이미지리스트 파일로 저장 후 스크립트 종료
F2::
if hImageList
{
SaveHBITMAPToFile(hImageList, imgListFile := "캡춰이미지리스트.bmp")
DllCall("DeleteObject", Ptr,hImageList)
hImageList =
MsgBox, 캡춰한 이미지리스트를 %imgListFile%에 저장했습니다.
}
ExitApp
return
'AHK+ 명령어' 카테고리의 다른 글
오토핫키+ ImageFilter 명령어 추가 (2) | 2015.11.20 |
---|---|
오토핫키+ RunWait 명령어 기능 확장 (0) | 2015.10.31 |
오토핫키+ ZipToVar, UnzipToVar 명령어 추가 (1) | 2015.10.10 |
오토핫키+ BinToHex, HexToBin 명령어 추가 (9) | 2015.10.03 |
오토핫키+ URLDownloadToVar 명령어 추가 (0) | 2015.10.01 |