我自己编了个程序想控制另外一个外部程序,我根据外部程序的一个按钮的是否可用来判断外部程序的操作是否完成,利用外部程序的一个按钮的边框上的一个点是否黑色来判断,如果是黑色就说明可用(即外部程序任务完成),否则不可用接着我的程序执行后续操作,非常奇怪的是这个程序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