vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font   |   VB-Versionen: VB.NET03.06.08
Pixelfarbe unter dem Mauszeiger, bildschirmweit

Eine Funktion zum Bestimmen der Farbe des Pixels des Bildschirms, das sich gerade unter dem Mauszeiger befindet.

Autor:   Dietrich HerrmannBewertung:  Views:  20.181 
ohne HomepageSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Unter dem Link  http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=362248&SiteId=1 fand ich eine Lösung für diesen Fall und habe das Ganze ein wenig angepasst.

Zunächst im Deklarationsteil der Form/Moduls:

Imports System.Runtime.InteropServices
  ' benötigte API-Funktionen
  <DllImport("gdi32.dll")> _
  Private Shared Function CreateDC( _
    ByVal lpszDriver As String, _
    ByVal lpszDevice As String, _
    ByVal lpszOutput As String, _
    ByVal lpInitData As IntPtr) As IntPtr
  End Function
 
  <DllImport("gdi32.dll")> _
  Private Shared Function DeleteDC(ByVal hdc As IntPtr) As Boolean
  End Function
 
  <DllImport("gdi32.dll")> _
  Private Shared Function GetPixel( _
    ByVal hdc As IntPtr, _
    ByVal nXPos As Integer, _
    ByVal nYPos As Integer) As Integer
  End Function

Jetzt die eigentliche Funktion:

  ''' <summary>
  ''' Ermittelt den Farbwert des Pixels unter dem Mauszeiger
  ''' </summary>
  ''' <param name="x">x-Koordinate des Screens</param>
  ''' <param name="y">y-Koordinate des Screens</param>
  Public Function GetPixelColor(ByVal x As Integer, ByVal y As Integer) As Color
    Dim hdcScreen As IntPtr = CreateDC("Display", Nothing, Nothing, IntPtr.Zero)
    Dim colorRef As Integer = GetPixel(hdcScreen, x, y)
    DeleteDC(hdcScreen)
 
    Return Color.FromArgb(colorRef And &HFF, _
      (colorRef And &HFF00) >> 8, (colorRef And &HFF0000) >> 16)
  End Function

Jetzt noch die Aufrufvariante bspw. in einem Timer_Tick_Ereignis:

    ' Farbwert des Pixels unter dem Mauszeiger
    Dim pixColor As Color = GetPixelColor(Cursor.Position.X, Cursor.Position.Y)

Fertig.



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.