vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: GetPixel mal andersherum ??? 
Autor: Malkoc
Datum: 17.09.09 15:19

Hi,
danke Zardos.

Meine vorherige Frage hat sich erledigt, brauche keinen Rahmen mehr. Hab herausbekommen, dass man den "hDC" auf null setzen muss. Dann kann der Cursor sich auch auserhalb der Runtime bewegen und nach Pixel suchen.
z.B.
  nDC = GetDC(0)
  ScreenPixelColor = GetPixel(nDC, nPoint.x, nPoint.y)
  ReleaseDC 0, nDC
Das mit dem Screenshot würde nicht klappen, weil ich in einem bewegtem "Bild" nach Pixel suche.
Ich habe das jetzt ganz einfach gemacht, vielleicht nicht so professionell, aber es scheint zu laufen
Und zwar grenze ich den Bereich ein (X,Y Positionsangaben und Startposition), dann "fahre" ich mit dem Cursor eine Sinuskurve nach rechts und eine inv. Cosinuskurve zurück und mein Pixel wird zu 99,9% gefunden, da die Pixelfarbe nicht nur 1x1px ist, wird es leichter entdeckt. Übrigens ich strecke die Sin und Cos mit einem Faktor, so kann ich einen grösseren Bereich absuchen ohne jeden einzelnen Pixel abfragen zu müssen.
Beispiel:
Private Sub Timer3_Timer()
  Dim aX%, aY%, dx%, dy%
  Dim Pt As POINTAPI
  Dim xBreit As Long
  Dim R, G, B
 
  xGo = Text1.Text
  yGo = Text2.Text
  Faktor = Text3.Text
  xBreit = Text4.Text
  Pt.x = xGo
  Pt.y = yGo
  SetCursorPos xGo, yGo
 
  If ZeigerRechts = False Then
   If xwert <= xBreit Then
    Sinus xwert, ywert, Faktor
    dx = xwert + xGo
    dy = ywert + yGo
    Pt.x = dx
    Pt.y = dy
    SetCursorPos Pt.x, Pt.y
    Label1.Caption = "X: " & Pt.x & " Y: " & Pt.y
    Label3.Caption = ScreenPixelColor
    R = (ScreenPixelColor And &HFF&)
    G = (ScreenPixelColor And &HFF00&) \ 256
    B = (ScreenPixelColor And &HFF0000) \ 65536
    Label4.Caption = R & ", " & G & ", " & B
   End If
   If ScreenPixelColor = searchpixel
      MsgBox "Gefunden"
   End If
  xwert = xwert + 1
  End If
  If xwert >= xBreit Then
    ZeigerRechts = True
  End If
  If ZeigerRechts = True Then
   If (xwert + xGo) > xGo Then
    Cosinus xwert, ywert, Faktor
    dx = xwert + xGo
    dy = ywert + yGo
    Pt.x = dx
    Pt.y = dy
    SetCursorPos Pt.x, Pt.y
    Label1.Caption = "X: " & Pt.x & " Y: " & Pt.y
    Label3.Caption = ScreenPixelColor
    R = (ScreenPixelColor And &HFF&)
    G = (ScreenPixelColor And &HFF00&) \ 256
    B = (ScreenPixelColor And &HFF0000) \ 65536
    Label4.Caption = R & ", " & G & ", " & B
   End If
   If ScreenPixelColor = searchpixel
      MsgBox "Gefunden"
   End If
   If xwert <= 0 Then
     Me.Timer3.Enabled = False
     ZeigerRechts = False
   End If
   xwert = xwert - 1
  End If
End Sub
Danke nochmal für die Hilfe.

MfG
Malkoc
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
GetPixel mal andersherum ???1.740Malkoc02.09.09 00:34
Re: GetPixel mal andersherum ???1.089Dirk02.09.09 07:25
Re: GetPixel mal andersherum ???1.108Malkoc02.09.09 13:35
Re: GetPixel mal andersherum ???1.100David058802.09.09 14:01
Re: GetPixel mal andersherum ???1.090Malkoc02.09.09 19:10
Re: GetPixel mal andersherum ???1.175Zardoz02.09.09 22:53
Re: GetPixel mal andersherum ???1.103Malkoc02.09.09 23:39
Re: GetPixel mal andersherum ???1.076Malkoc03.09.09 11:17
Re: GetPixel mal andersherum ???1.024Zardoz04.09.09 13:38
Re: GetPixel mal andersherum ???1.079Zardoz04.09.09 13:33
Re: GetPixel mal andersherum ???1.214Malkoc17.09.09 15:19
reine Neugier1.053Hawk7818.09.09 09:06
Re: GetPixel mal andersherum ???968VB.NET200525.09.09 21:25
Re: GetPixel mal andersherum ???970Malkoc25.09.09 21:55

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel