我有一个计时器,除其他外,它可以检查屏幕上的 5 个点是否有颜色变化。我的程序监视电话系统应用程序并检查是否有来自 5 个按钮中的任何一个的新来电。我正在根据我发布的另一个问题使用以下代码。 在 Visual Basic 中监视屏幕区域的某种颜色
Private Function CheckforCall()
Try
Dim queue1 As Integer = GetPixel(GetDC(0), 40, 573)
Dim queue2 As Integer = GetPixel(GetDC(0), 140, 573)
Dim queue3 As Integer = GetPixel(GetDC(0), 240, 573)
Dim queue4 As Integer = GetPixel(GetDC(0), 340, 573)
Dim queue5 As Integer = GetPixel(GetDC(0), 440, 573)
ReleaseDC(0)
<code snipped - Checks to see if the pixel color matches and
returns true or false>
Catch ex As Exception
Return False
End Try
End Function
使用此代码,GDI 对象会在短时间内迅速飙升并引发 OutOfMemory 异常。我假设我没有正确释放 DC,但我似乎找不到任何其他方法来做到这一点。