我自己编了个程序想控制另外一个外部程序,我根据外部程序的一个按钮的是否可用来判断外部程序的操作是否完成,利用外部程序的一个按钮的边框上的一个点是否黑色来判断,如果是黑色就说明可用(即外部程序任务完成),否则不可用接着我的程序执行后续操作,非常奇怪的是这个程序win7下执行都正确的,但是到了xp下,对方的按钮那个点没有变成黑色我的程序却取到了黑色的点退出了循环,那个点的坐标我测试了都没问题的。请问高手这个到底什么原因。谢谢
Do Until Splitfinish()
DoEvents
Sleep 1000
LoopPrivate 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
Do Until Splitfinish()
DoEvents
Sleep 1000
LoopPrivate 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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货