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

梦林 2011-09-05 02:00:06
原帖: 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
...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦林 2011-09-15
  • 打赏
  • 举报
回复
暂时没办法了, 不过还是谢谢 十豆三 指教!
十豆三 2011-09-06
  • 打赏
  • 举报
回复
如果其他软件也取不到颜色,那就不是这段代码问题,也是方法的问题。

要弄清QQ宠物的原理后再下手吧。
梦林 2011-09-06
  • 打赏
  • 举报
回复
已测试过,上述代码仍然取不到QQ宠物的颜色,只取到了所在位置后面的颜色;
网上也下载了屏幕取色器软件, 也不行!
像是 直接透过QQ宠物,不管QQ宠物后面是什么背景(网页/桌面/快捷方式/其它软件...)都能直接取到颜色,偏偏QQ宠物本身颜色取不到!
十豆三 2011-09-05
  • 打赏
  • 举报
回复
你用其他取色软件(网上很多的),试试能否取到颜色。

我没弄赤 QQ宠物 ,你试一下吧。
十豆三 2011-09-05
  • 打赏
  • 举报
回复
取得当前鼠标所在屏幕位置的RGB色
*------------------------------

Declare Short GetCursorPos In user32 String @lpPoint
Declare Integer WindowFromPoint In user32 Integer,Integer
Declare Integer ScreenToClient In user32 Integer HWnd,String @lpPoint
Declare Long GetPixel In gdi32 Long hdc,Long x,Long Y
Declare Integer GetDC In user32 Integer HWnd
cBuffer=Replicate(Chr(0),8)
GetCursorPos(@cBuffer)
lnX=CToBin(Substr(cBuffer,1,4),'4rs')
lnY=CToBin(Substr(cBuffer,5,4),'4rs')
myhDC=GetDC(0)
lnColor=getpixel(myhDC,lnX,lnY) && lnColor 可以直接覆给 vfp 的颜色属性
lnR=Int(Min(Max(Mod(lnColor,256),0),255))
lnG=Int(Min(Max(Mod((lnColor/256),256),0),255))
lnB=Int(Min(Max(lnColor/65535,0),255))
?Alltrim(Str(lnR))+','+Alltrim(Str(lnG))+','+Alltrim(Str(lnB))
内容概要:本文围绕基于重移相控制(TPS)的双有源桥(DAB)高频隔离DC-DC变换器开展系统性研究,重点构建了其在Simulink环境下的高精度仿真模型。研究全面涵盖SPS单相移相、DPS双重重移相与TPS重移相等多种控制策略的建模、实现与性能对比,深入分析不同模式下变换器的功率传输特性、软开关实现条件及功率回流问题,旨在提升DAB在交直流混合微电网、能量路由器、多端口柔性互联装置等场景中的转换效率与动态响应能力。通过对ZVS(零电压切换)条件的精确控制与移相角参数的优化,有效降低了开关损耗,增强了系统整体能效与运行稳定性。该仿真模型具有良好的可扩展性,适用于复杂电能转换系统的科研验证与工程开发。; 适合人群:电力电子、电气工程及其自动化等相关专业的硕士研究生、博士生、科研人员以及从事新能源变换器、柔性输配电系统设计的工程技术人员。; 使用场景及目标:①掌握双有源桥DAB变换器的基本工作原理及其在高频隔离场合的核心优势;②深入理解重移相控制策略的设计机理、控制自由度分配及其在效率优化中的关键作用;③构建并调试可用于科研论文撰写、项目申报或实际系统验证的高保真Simulink仿真模型,支撑理论分析与实验对比。; 阅读建议:建议结合MATLAB/Simulink平台进行动手实践,重点关注主电路拓扑搭建、移相控制模块设计、驱动信号时序配置及ZVS实现条件的仿真观测,推荐通过对比SPS、DPS与TPS种模式的稳态与动态响应曲线,深入掌握各控制策略的适用边界与优化方向。
【重要提示】本资源设置为0积分下载,若非0积分勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧