#SingleInstance Force
#include bin/lib/COM.ahk
#include bin/lib/CLR.ahk
adb_path = %A_AppData%\Nox\bin\nox_adb.exe
adb_device =
device_Name:="녹스"
if list := AdbDeviceList()
if adb_device := PopupSelectWindow(list)
Gui, Show, x800 y480 h125 w220, 실험
Return
GuiClose:
ExitApp
return
F1::
MsgBox,%list%
CLR_Start()
asm := CLR_LoadLibrary("AhkAdb.dll")
adb := CLR_CreateObject(asm, "AhkAdb.Adb")
COM_Invoke(adb, "Device=", "%list%")
COM_Invoke(adb, "Capture")
COM_Invoke(adb, "SaveCaptureAll", "테스트.bmp")
return
;----------------------------------------------------------------------------------
;선택윈도우 팝업
PopupSelectWindow(list, msg="", title="")
{
global SelectList_BtnOK, SelectList_List
if list=
Gui, 22: Add, ListBox, xm vSelectList_List, %list%
SelectList_List:=list
loop
{
sleep, 100
if SelectList_List
return SelectList_List=-1? "":SelectList_List
}
}
;----------------------------------------------------------------------------------
;디바이스 목록 얻기
AdbDeviceList()
{
global adb_path, adb_process
if adb_process
return
if !adb_path
return
Runwait, "%adb_path%" devices,, hide timeover10, adb_process, data
adb_process =
if !data
return
data := RegExReplace(A_IsUnicode? StrGet(&data, "UTF-8") : data, "`r`n", "`n")
loop, parse, data, `n
if RegExMatch(A_LoopField, "(.*)\tdevice", $)
list .= "|" $1
StringReplace, list, list, |
return list
}
이렇게해서 디바이스 정보랑 다 가져오고 테스트.bmp로 저장할려고하는데
ERROR: The COM Object may not be a valid Dispatch Object! First Ensure that COM Library Has Been initialized through
라면서 Device,Capture,SaveCaptureAll 개가 오류라고 뜨는데 뭘 고쳐야하는건지...
참고로 dll파일은 구했고
닷넷은 4.5입니다.
오토핫키 버젼이 맞지않는거 아닐까요 ? 몇버젼부터는 컴 함수가 오토핫키에 포함되어있어서..
사용법이 좀 틀린걸로 알고있네요