안녕하세요.
비활성 PixelColor 를 쓰고 있습니다.
LD 플레이어서 사용하고 있는데
화면에 멈춰 있을때는 잘되는데 화면이 움직임이 있을때(게임할때)는 안됩니다.
그래서 동영상파일도 해봤는데 동영상이 멈춰있을때는 잘되고 동영상이 재생중일때는 동일하게 안됩니다.
화면 움직임이 있을때 안되는거 같은데요
어떻게 해야할지 조언좀 부탁드립니다.
감사합니다.ㅠㅠ
PixelColor(pc_x, pc_y, pc_wID)
{
If pc_wID
{
pc_hDC := DllCall("GetDC", "UInt", pc_wID)
WinGetPos, , , pc_w, pc_h, ahk_id %pc_wID%
pc_hCDC := CreateCompatibleDC(pc_hDC)
pc_hBmp := CreateCompatibleBitmap(pc_hDC, pc_w, pc_h)
pc_hObj := SelectObject(pc_hCDC, pc_hBmp)
pc_hmCDC := CreateCompatibleDC(pc_hDC)
pc_hmBmp := CreateCompatibleBitmap(pc_hDC, 1, 1)
pc_hmObj := SelectObject(pc_hmCDC, pc_hmBmp)
DllCall("PrintWindow", "UInt", pc_wID, "UInt", pc_hCDC, "UInt", 0)
DllCall("BitBlt" , "UInt", pc_hmCDC, "Int", 0, "Int", 0, "Int", 1, "Int", 1, "UInt", pc_hCDC, "Int", pc_x, "Int", pc_y, "UInt", 0xCC0020)
;;DllCall("BitBlt" , "UInt", pc_hmCDC, "Int", pc_x-1, "Int", pc_y-1, "Int", pc_x, "Int", pc_y, "UInt", pc_hCDC, "Int", pc_x, "Int", pc_y, "UInt", 0xCC0020)
pc_fmtI := A_FormatInteger
SetFormat, Integer, Hex
DllCall("GetBitmapBits", "UInt", pc_hmBmp, "UInt", VarSetCapacity(pc_bits, 4, 0), "UInt", &pc_bits)
pc_c := NumGet(pc_bits, 0)
SetFormat, Integer, %pc_fmtI%
DeleteObject(pc_hBmp), DeleteObject(pc_hmBmp)
DeleteDC(pc_hCDC), DeleteDC(pc_hmCDC)
DllCall("ReleaseDC", "UInt", pc_wID, "UInt", pc_hDC)
Return pc_c
}
}
CreateCompatibleDC(hdc=0) {
return DllCall("CreateCompatibleDC", "UInt", hdc)
}
CreateCompatibleBitmap(hdc, w, h) {
return DllCall("CreateCompatibleBitmap", UInt, hdc, Int, w, Int, w)
}
SelectObject(hdc, hgdiobj) {
return DllCall("SelectObject", "UInt", hdc, "UInt", hgdiobj)
}
DeleteObject(hObject) {
Return, DllCall("DeleteObject", "UInt", hObject)
}
DeleteDC(hdc) {
Return, DllCall("DeleteDC", "UInt", hdc)
}