Bemerkung von Farbveränderung
lima-city → Forum → Programmiersprachen → Basic
beobachten
code
computerbildschirm
fenster
funktion
geschrieben code
gockel
internet
parameter
position
programm
punkt
sekunde
sender
steuerelement
system
text
tick
url
verwendeten koordinaten
-
Hi
Ich wollte mal fragen. Kann man per VB einen punkt auf dem Computerbildschirm beobachten lassen. Und wenn irgendetwas in diesem Punkt verändert wird. Gibt es irgendwie true oder so aus.
Also z.B. ich gebe für y=565 und für x=700 an und wenn dort irgendwie ein Programm geöffnet wird oder sich ein Programm dort genau an diesem Punkt die Farbe ändert. Bemerkt das mein Programm. Ich hoffe dass es solch eine Funktion gibt. Danke schon im Voraus
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Der Gockel hat wieder mal Hilfe:
http://www.aboutvb.de/khw/artikel/khwscreenpixelcolor.htm
Du überprüfst den Farbwert beim Laden deines Programms, und danach halt z.B. alle 5 Sekunden, und sobald der Farbwert abweicht, führst du deine gewünschte Aktion aus. Wichtig ist bloß, dass du bei GetDC den Parameter 0 verwendest für den ganzen Bildschirm, ansonsten sind die verwendeten Koordinaten nicht global, sondern lokal auf deinem Fenster bzw. Steuerelement. -
Jezt habe ich Mal das geschrieben
Public Class Form1 Private Structure POINTAPI Dim X As Long Dim Y As Long End Structure Private Declare Function GetPixel Lib "gdi32" _ (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long Private Declare Function GetCursorPos Lib "user32" _ (ByVal lpPoint As POINTAPI) As Long Private Declare Function GetDC Lib "user32" _ (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" _ (ByVal hwnd As Long, ByVal hdc As Long) As Long Public Function ScreenPixelColor(Optional ByVal X As Long = -1, _ Optional ByVal Y As Long = -1) As Long Dim nPoint As POINTAPI Dim nDC As Long If (X < 0) Or (Y < 0) Then GetCursorPos(nPoint) Else nPoint.X = X nPoint.Y = Y End If nDC = GetDC(0) ScreenPixelColor = GetPixel(nDC, nPoint.X, nPoint.Y) ReleaseDC(0, nDC) End Function Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick tb.Text = ScreenPixelColor(MousePosition.X, MousePosition.Y) End Sub End Class
Aber egal wo ich meine Maus bewege der Farbwert bleibt
8976207410683183103 -
Ich hab' nochmal ein wenig im Internet gesucht, du solltest die unten beschrieben Funktion einfach verwenden, das paßt dann:
Public Class Form1 Private Structure POINTAPI Dim X As Long Dim Y As Long End Structure Private Declare Function GetPixel Lib "gdi32" _ (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long Private Declare Function GetCursorPos Lib "user32" _ (ByVal lpPoint As POINTAPI) As Long Private Declare Function GetDC Lib "user32" _ (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" _ (ByVal hwnd As Long, ByVal hdc As Long) As Long Public Function ScreenPixelColor(Optional ByVal X As Long = -1, _ Optional ByVal Y As Long = -1) As Long Dim nPoint As POINTAPI Dim nDC As Long If (X < 0) Or (Y < 0) Then GetCursorPos(nPoint) Else nPoint.X = X nPoint.Y = Y End If nDC = GetDC(0) ScreenPixelColor = GetPixel(nDC, nPoint.X, nPoint.Y) ReleaseDC(0, nDC) End Function Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick tb.Text = ScreenPixelColor(-1, -1) End Sub End Class
Dann wird automatisch die Mouse-Position von der Funktion ermittelt (mit der Funktion GetCursorPos)! -
Bei mir verändert sich leider nichts
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage