首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

请 十豆三 帮忙看一下 为什么获取不到 QQ宠物 的前景色解决方法

2012-02-08 
请 十豆三 帮忙看一下 为什么获取不到 QQ宠物 的前景色原帖: http://topic.csdn.net/u/20110901/15/13beeb

请 十豆三 帮忙看一下 为什么获取不到 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宠物的原理后再下手吧。

热点排行