Avatar billede noaz Nybegynder
01. februar 2005 - 16:13 Der er 1 kommentar

getPixel uden for form

jeg har set adskillige eksempler på, at det er muligt at få RGB tallet for en pixel (x,y), der er et hvilket som helst sted på skærmen i VB6, men er det også muligt i .NET?
det burde vel være muligt, når der er tale om API kald, men jeg har ikke kunne få det til at virke..
her er den kode jeg er nået frem til:

    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 Point) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim bmp As Bitmap = New Bitmap(1, 1)

        Dim lDC As Long = GetWindowDC(0)
        Dim color As Long = GetPixel(lDC, Cursor.Position.X, Cursor.Position.Y)

        TextBox1.Text = color

    End Sub


(kræver en Timer1, samt en TextBox1 for at kunne køre :)

på forhånd tak!
Avatar billede burningice Nybegynder
05. februar 2005 - 04:31 #1
der er vist lidt for meget copy/paste fra vb6 der :P... i .net skal man bruge DllImport for at få fat i funktioner der ligger i unmanaged code.

Eksempel:

<DllImport("gdi32", EntryPoint:="GetPixel", SetLastError:=True)>
Public Function GetPixel(ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester