取屏幕上一个点颜色的问题,高手请来帮忙谢谢
我自己编了个程序想控制另外一个外部程序,我根据外部程序的一个按钮的是否可用来判断外部程序的操作是否完成,利用外部程序的一个按钮的边框上的一个点是否黑色来判断,如果是黑色就说明可用(即外部程序任务完成),否则不可用接着我的程序执行后续操作,非常奇怪的是这个程序win7下执行都正确的,但是到了xp下,对方的按钮那个点没有变成黑色我的程序却取到了黑色的点退出了循环,那个点的坐标我测试了都没问题的。请问高手这个到底什么原因。谢谢Do Until Splitfinish()
DoEvents
Sleep 1000
Loop
Private Function Splitfinish()
Dim p As RECT
Dim a As Long
hwd = FindWindow("GMapTool.exe", "GMapTool")
GetWindowRect hwd, p
a = CreateDCA("DISPLAY", vbNullString, vbNullString, 0)
If Ver.OsName = "Windows XP" Then
If GetPixel(a, p.Left + 30, p.Top + 94) = 0 Then
Splitfinish = True
Else
Splitfinish = False
End If
ElseIf Ver.OsName = "Win7" Then
If GetPixel(a, p.Left + 30, p.Top + 94) = 0 Then
Splitfinish = True
Else
Splitfinish = False
End If
End If
DeleteDC a
End Function --------------------编程问答-------------------- 不太可能吧,你说的那外部程序窗口会不会是啥特殊窗口,比如半透明窗口,视频窗口 --------------------编程问答-------------------- GMapTool.exe一个导航地图拆分的工具,他也不是半透明或者视频的,之前win7下的时候我时判断一个点变化 也有时不准 后来判断4个点就可以了,不过在 xp下就算判断四个点得变化也没用 非常的奇怪,明明屏幕上看到的颜色还没变黑,我的程序那个值取过过来已经是0(黑色)了。
补充:VB , 多媒体