Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Regenwurm
Coder
Coder

Anmeldedatum: 06.05.2008
Beiträge: 88

GetPixel API
Verfasst am: 15.05.2008, 19:54

Guten Abend.

Ich arbeite im Moment gerade an einem Programm, das eine Pixelfunktion benötigt.
http://www.vbarchiv.net/api/details.php?id=getpixel
Unter diesem Link, findet man die API von vbarchiv.net.

Nun meine Frage:

Funktioniert diese API auch, wenn der gesuchte Pixel nicht auf der Form liegt, sondern irgend wo anders ist (bei meinem Fall, ist der Pixel auf einem externen "Programm")?
Und wie finde ich nun beispielsweise die Farbe des Pixels 544,360 heraus?
Die API ist ein bisschen komisch erklärt :/


so far
Regenwurm
_________________
 
Hamtaro
Tutorial Leser
Tutorial Leser

Anmeldedatum: 17.04.2008
Beiträge: 29


Verfasst am: 16.05.2008, 06:49

wenn du den DeviceContext des BIldschirms nimmst, klar.
Visual Basic: [code]GetDc 0[/code] wählt den ganzen Bildschirm aus.
 
Regenwurm
Coder
Coder

Anmeldedatum: 06.05.2008
Beiträge: 88


Verfasst am: 16.05.2008, 09:37

Also wäre nun der VB Code, um die Pixelfarbe heraus zu finden:

Hmm..
und nun, wie würde ich die Pixelfarbe des Pixels 544,360 herausfinden?
 
Bahamut
Poster
Poster

Anmeldedatum: 17.04.2008
Beiträge: 142


Verfasst am: 16.05.2008, 10:13

Damit du vom Monitor auslesen kannst, musst du erst GetDc() deklarieren:

Visual Basic: [code]Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long[/code]

nXPosGibt die horizontale Koordinate (x) des Pixels an.
nYPosGibt die vertikale Position (y) des Pixels an.


Danach einfach nXPos mit 544 und nYPos mit 360 ersetzen:

Visual Basic: [code]
GetPixel(GetDC(0), 544, 360)
[/code]
 
Regenwurm
Coder
Coder

Anmeldedatum: 06.05.2008
Beiträge: 88


Verfasst am: 16.05.2008, 11:18

Pixelfarben werden in einer 6-stelligen Zahl ausgegeben?
Naja auch egal Wink

Nun habe ich die Farbe..
Wie mach ich nun praktisch ne Farbüberprüfung?

Ich will es so "gestalten", dass das Programm iwas macht, sprich "DoEvents" bis der Pixel eine bestimmte Farbe erreicht..

lg
Regenwurm
 
Bahamut
Poster
Poster

Anmeldedatum: 17.04.2008
Beiträge: 142


Verfasst am: 16.05.2008, 12:19

Ein bisschen Eigenintiative könnte dir auch nicht schaden - oder dich wenigstens mal bedanken anstatt wieder zu meckern.

Pixelfarben werden in einer 6-stelligen Zahl ausgegeben?


Es muss nicht 6stellig sein, das war bei dir nur Zufall. Der Rückgabewert ist ein RGB-Wert und wenn du mit dem nichts anfangen kannst, dann empfehle ich dir folgende Funktion:

Visual Basic: [code]'Autor: MacInternet @ tutorials.de
Function RGB2HTML(RGB)
'Long in Hex umwandeln:
RGB2HTML = Right("00000" & Hex(RGB), 6)
'RGB-Werte richtig sortieren:
RGB2HTML = "'#" & _
Mid(RGB2HTML, 5, 2) & _
Mid(RGB2HTML, 3, 2) & _
Mid(RGB2HTML, 1, 2) & "'"
End Function[/code]

Diese Funktion wandelt den RGB-Wert in einen (zu HTML kombitablen) HexWert um. Zu diesen gibt es mehr als genug Tabellen im Web, z.b http://www.nickis-edeltroedel.de/rgb-tabelle/tabelle.html

 
Regenwurm
Coder
Coder

Anmeldedatum: 06.05.2008
Beiträge: 88


Verfasst am: 16.05.2008, 13:33

Danke Smile

Doch, es ist mir schon klar, was ein RGB-Wert ist.
Doch muss ich den Wert in einen HexWert umwandeln?


Oder kann ich die Überprüfung gleich mit dem "alten" Wert vornehmen?
 
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699


Verfasst am: 16.05.2008, 14:56

Visual Basic: [code]Do while GetPixel(GetDC(0), 544, 360) <> deine farbe
doevents
loop[/code]

is das so schwer?
 
Bahamut
Poster
Poster

Anmeldedatum: 17.04.2008
Beiträge: 142


Verfasst am: 16.05.2008, 15:03

Pixelfarben werden in einer 6-stelligen Zahl ausgegeben?


Wegen dieser Aussage bin ich davon ausgegangen, dass du mit dem RGB-Wert nichts anfangen kannst. Vondaher dachte ich du kannst vielleicht eher mit dem Hexwert was anfangen.

(Regenwurm;2273)
Doch, es ist mir schon klar, was ein RGB-Wert ist.
Doch muss ich den Wert in einen HexWert umwandeln?


Wenn du aber mit dem RGB-Wert was anfangen kannst dann natürlich nicht, siehe sollniss`s Post.
_________________


 
Regenwurm
Coder
Coder

Anmeldedatum: 06.05.2008
Beiträge: 88


Verfasst am: 17.05.2008, 16:15


Viele dank euch beiden Wink
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: getpixel, pixel, api, farbe, form

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [Video] VB Programm "stylen" 2825 05.02.2008, 15:09
Keine neuen Beiträge Programm kompilieren ? 852 03.04.2007, 00:08
Keine neuen Beiträge programm erstellen mit schleife und url aufrufen 760 01.04.2007, 08:47
Keine neuen Beiträge Mein erstes Programm 1079 30.01.2007, 20:14
Keine neuen Beiträge Programm 673 27.01.2007, 22:26
 

AdSprüche
RSSQianmen - Zhengyangmen und die Qianmen StraÃ?e
RSSChina Börse am Abend vom Freitag dem 10.02.2012
dealrabbit Gutscheine Sprüche


[ Time: 0.3585s ][ Queries: 117 (0.0319s) ][ GZIP on - Debug on ]