У меня есть следующий Visual Basic 2010 код:ввода в неактивное окно
Function GetScreenPixel(ByVal Location As Point) As Color
Dim C As Color
Using Bmp As New Bitmap(1, 1)
Using G As Graphics = Graphics.FromImage(Bmp)
G.CopyFromScreen(Location, Point.Empty, Bmp.Size)
C = Bmp.GetPixel(0, 0)
End Using
End Using
Return C
End Function
Чтобы получить цвет пикселя на экране.
Затем я использую что-то вроде:
Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If GetScreenPixel(New Point(650, 728)).ToString = "Color [A=255, R=255, G=255, B=255]" Then
Cursor.Position = New Point(955, 548)
mouse_event(&H2, 0, 0, 0, 0)
mouse_event(&H4, 0, 0, 0, 0)
End If
End Sub
Чтобы получить, отображается ли определенная кнопка на экране и активной (если это правда, то пиксел 650, 728 будет белым), и если да, то это будет щелкните его.
Это прекрасно работает. Мой вопрос заключается в том, что если я смогу каким-то образом расширить код, чтобы как функция для получения цвета пикселя, так и код для щелчка мыши можно было применить к неактивному окну. Чтобы я мог оставить свое приложение и щелкнуть по кнопке всякий раз, когда это необходимо, и я также могу использовать свой компьютер для других вещей одновременно.
Я слышал о чем-то под названием:
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Однако у меня было много трудностей заставить его работать с кодом образца я показал выше - и она до сих пор не обеспечивает решение получение цвета пикселя в неактивном окне.
Спасибо.
У кого-нибудь нет решения? Или даже намек на то, как решить проблему? – CHRIS