GetPixel liefert immer gleichen Farbwert!

morph3uz

Grünschnabel
Hallo liebe Community,
ich habe ein Problem mit der GetPixel-Funktion:
Sie liefert immer den gleichen Wert!

Hier mal ein Code in dem ich GetPixel (erfolglos) verwende:
Ich habe auch ein Hintergrundbild für die Form1 importiert und die Hintergrundfarbe mal auf Rot gesetzt, aber keine Veränderungen.
Code:

Code:
Public Class Form1

    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    'Private Declare Function GetActiveWindow Lib "user32" () As Long

    Private Sub Form1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick
        Dim lngScreen, lngColor As Long
        lngScreen = GetWindowDC(0)
        lngColor = Form1.GetPixel(lngScreen, MousePosition.X, MousePosition.Y)
        MsgBox(CStr(lngColor) & vbCrLf & CStr(Hex(lngColor)))
    End Sub
End Class

Ist es möglich, dass die Mausposition in der Maus liegt, also auf dem Rand, und daher immer nur der Farbwert der Maus angezeigt wird?
Also ich habe es auch schon so probiert, indem ich jeweils von der X und Y Koordinate 5 Pixel abgezogen habe, auch ohne Erfolg...

Ich hoffe ihr findet den Fehler und könnt mir helfen.
Danke, mfg
morph3uz
 
Nun, danke ersteinmal für eine Antwort. Aber leider funktioniert es so nicht.
Auf die Frage, was ich erhalte:
Ich lasse mir die Werte jetzt so anzeigen:
Code:
TextBox1.Text = CStr(lngScreen)
        TextBox2.Text = CStr(Hex(lngScreen))
Ich hoffe mal das ist richtig so und verfälscht nicht das Ergebnis...
Also es gibt keinen festen Wert... nach jedem Klick (auf die selbe Stelle!) verändert sich der Wert nochmal... warum auch immer...

Hier mal ein paar Werte:
Long: 8976214555311018915
Hex: 7C91EB947D0113A3

Long: 8976214556300875713
Hex: 7C91EB94B80117C1

Long: 8976214555747227604
Hex: 7C91EB94970117D4

So geht das dann immer weiter...

Hoffe jemand weiß woran es liegt.

Mal hier mein eigentliches Ziel:
Ich versuche mir einen Bot zu programmieren, der zuerst die gedrückten Tasten scannt und wartet bis eine ganz bestimmte taste gedrückt wurde. Danach wird der Timer aktiviert. Dieser soll einen Code aufrufen,d er den Bildschirm meines Spiels (das im Vollbild im Vordergrund läuft) scannen und dann an 3 Positionen des Bildchirms die Farbe auslesen. Stimmen alle 3 Werte mit 3 Konstanten überein, so wird ein Tastendruch mit Hilfe von Sendkeys an das Spiel gesendet...

Danke im Voraus

MFG, morph3uz
 
Zurück