为什么获取不到 QQ宠物 的前景色
使用API函数 GetDC,SetCapture,GetCursorPos 及 mm_color = GetPixel(hdc,Int(X_X),Int(Y_Y))
获取屏幕鼠标所在点的颜色, 发现桌面/网页/窗体的任意点颜色都能正常取得,
但 QQ宠物(就那个会做操的小企鹅)的颜色却不能得到,
只获得了被宠物遮挡的原背景颜色,不明白,是不是应该处理一下 设备场景之类的东西(我不太懂!!!猜测...),
望路过的高人指点一下...
VFP部分代码:
以下代码: (自定义表单INIT)
Declare integer GetCursorPos IN win32api string
DECLARE INTEGER SetCursorPos IN WIN32API INTEGER dx,INTEGER dy
DECLARE INTEGER GetPixel IN WIN32API INTEGER hDC,INTEGER xx,INTEGER yx
DECLARE INTEGER GetDC IN user32 INTEGER hwnd
DECLARE INTEGER SetCapture IN user32 INTEGER hwnd
DECLARE INTEGER GetCapture IN user32 INTEGER hwnd
PUBLIC hdc
hdc=GetDC(0)
SetCapture(hdc)
(按钮事件)
DO WHILE .T. && 显示鼠标坐标及颜色
p1=Repl(Chr(0),8)
GetCursorPos(@p1)
Dime num[8]
For i=1 To 8
Trans(Asc(Substr(p1,i,1)),"@0")
num[i]=Right(Trans(Asc(Substr(p1,i,1)),"@0"),2)
Endfor
X_X=Val("0x"+num[4]+num[3]+num[2]+num[1])
Y_Y=Val("0x"+num[8]+num[7]+num[6]+num[5])
mm_color = GetPixel(hdc,Int(X_X),Int(Y_Y))
thisform.Caption = 'QQ 吹泡泡 '+ 'X='+ALLTRIM(STR(Int(X_X),5))+' '+'Y='+ALLTRIM(STR(Int(Y_Y),5))+' Color='+STR(mm_color)
IF INT(X_X)<10 AND INT(Y_Y)<10
EXIT
ENDIF
ENDDO
[解决办法]
你让“QQ宠物”别乱动肯定能获取到!
[解决办法]
你用其他取色软件(网上很多的),试试能否取到颜色。
[解决办法]
X_X=Val("0x"+num[4]+num[3]+num[2]+num[1])
Y_Y=Val("0x"+num[8]+num[7]+num[6]+num[5])
mm_color = GetPixel(hdc,Int(X_X),Int(Y_Y))
thisform.Caption = 'QQ 吹泡泡 '+ 'X='+ALLTRIM(STR(Int(X_X),5))+' '+'Y='+ALLTRIM(STR(Int(Y_Y),5))+' Color='+STR(mm_color)
IF INT(X_X)<10 AND INT(Y_Y)<10
出错啦。。。。。哈哈