電話システムに付属するプレーヤー アプリケーションを設計しています。コールテイカーが電話を受けると、各通話が録音されます。彼らはリスト モジュールに移動し、記録を見つけてダブルクリックすると、私のプレーヤーが開きます。私が抱えている問題は、受話器が別の電話を受けた場合、私のプレーヤーはそれを知らず、プレイを続けることです。特定の領域で画面を監視する方法を探しています。青ではなく黄色または赤が表示されると、プレーヤーが一時停止します。
電話システムにはフックできる API がないため、別の方法で試す必要があります。
画面の解像度が変わることはなく、通話を受信するキュー ボタンは常に静的です。電話がかかってくると、小さな領域が背景色の青から黄色または赤に変わり、電話がかかってきたことを示します。
助言がありますか?
**以下の回答と、Visual Basic で GetPixel/GetDC を使用したメモリ リークの質問に基づいて最終コードを編集します。
Private Function CheckforCall()
Dim hDC As IntPtr = GetDC(0)
Try
Dim queue1 As Integer = GetPixel(hDC, 40, 573)
Dim queue2 As Integer = GetPixel(hDC, 140, 573)
Dim queue3 As Integer = GetPixel(hDC, 240, 573)
Dim queue4 As Integer = GetPixel(hDC, 340, 573)
Dim queue5 As Integer = GetPixel(hDC, 440, 573)
If queue1 <> 9990727 Then
lblRinger.Text = "In Calls GOT CALL"
Return True
ElseIf queue2 <> 9990727 Then
lblRinger.Text = "Admin GOT CALL"
Return True
ElseIf queue3 <> 9990727 Then
lblRinger.Text = "Overflow GOT CALL"
Return True
ElseIf queue4 <> 9990727 Then
lblRinger.Text = "Bi-Lingual GOT CALL"
Return True
ElseIf queue5 <> 9990727 Then
lblRinger.Text = "Intercom GOT CALL"
Return True
Else
lblRinger.Text = "No Call"
Return False
End If
Catch ex As Exception
Return False
Finally
ReleaseDC(0, hDC)
End Try
End Function