请 十豆三 帮忙看一下 为什么获取不到 QQ宠物 的前景色
原帖: http://topic.csdn.net/u/20110901/15/13beebc0-2008-49a1-9d89-a74cc3b15e5e.html?75589
使用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宠物的原理后再下手吧。