Zjištění barvy pixelu na ploše   zodpovězená otázka

VB6/VBA

Čau,

chtěl bych se zeptat, zda existuje nějaký způsob, jak "vyčíst" z plochy barvu pixelu.

Třeba bych zadal souřadnice pixelu na ploše (ne jen ve formu) a ono by mi to vrátilo barvu.

Kdyžtak díky :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak ve VB6 to s jeho omezenými prostředky půjde hodně těžko, pouze s použitím Windows API a nebude to nic jednoduchého. Proč to neudělat v .NET?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jen sem dám řešení aby to bylo "ukončený vlákno" :

Private Declare Function CreateDC& Lib "gdi32" _
   Alias "CreateDCA" (ByVal lpDriverName As String, _
   ByVal lpDeviceName As String, ByVal lpOutput As String, _
   lpInitData As Any)
Private Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
Private Declare Function GetPixel Lib "gdi32" _
   (ByVal hdc As Long, ByVal x As Long, _
   ByVal y As Long) As Long

Private Type POINTAPI
   x As Long
   y As Long
End Type

Private Declare Function GetCursorPos Lib "user32" _
   (lpPoint As POINTAPI) As Long

Dim z As POINTAPI

A pak třeba do Timeru

GetCursorPos z
   screendc = CreateDC("DISPLAY", "", "", 0&)
   Picture1.BackColor = GetPixel(screendc, z.x, z.y)
   DeleteDC (screendc)

K otázce "Proč to neudělat v .NET?". VB.NET zas tak dobře neumím abych si troufnul na takovej program :) I když nějaký věci v něm jsou uplně úžasně jednoduchý (třeba načítání textu ze souboru po řádcích)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback