PixelGetColor mit bezug auf bestimmtes Fenster

  • Hallo
    Mit MouseClick möchte ich in einem Fenster den Haken in einer Listbox setzen. Um sicherzugehen das der Haken noch nicht gesetzt ist will ich mit PixelGetColor überprüfen ob ein bestimmter Pixel weiß ist. Das Problem, PixelGetColor bezieht sich mit den angegebenen Koordinaten auf den geammten Bildschirm und nicht auf das gewählte Fenster. Da sich das Fenster nicht immer an der selben Stelle befindet, funktioniert das leider nicht so wie geplant.
    Wie kann ich das Problem lösen?

    P.S. Es handelt sich nicht um eine normale Checkbox, controlcommand funktioniert also leider nicht


    Hier ein Teil des Quellcodes

    [autoit]

    WinActivate("Host Properties: W+H-Host TCP-IP DSL und Modem") ;soll sicherstellen das das richtige Fenster aktiviert ist
    Opt("MouseCoordMode",0) ;Soll sicherstellen das sich die Mauskoordinaten auf das Aktivierte Fenster beziehen
    Sleep(1500)
    $farbe = PixelGetColor( 37 , 143 ) ; Überprüfung ob haken in den Option schon gesetzt,Farbe ffffff entspricht weiß also kein Haken, 000000 entspicht schwarz haken also gesetzt
    MsgBox(0,"Der hexadezimale Wert der Farbe lautet", Hex($farbe, 6)) ; Ausgabe welche Farbe gefunden wurde
    if Hex($farbe, 6) = "ffffff" Then MouseClick("",37,143) ; wenn Pixel weiß, Haken also nicht gesetzt, klicke auf das Kästchen
    Sleep(1500)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    2 Mal editiert, zuletzt von hanswurst (16. Juli 2008 um 12:55)

  • Hi
    Mein Problem war, dass ich nicht wusste, dass die Optionen für PixelCoordMode und MouseCoordMode getrennt eingestellt werden müssen.
    Ich hatte halt nur die Mousekoordinaten im Bezug auf das Fenster gesetzt. nicht jedoch die Pixelkoordinaten.
    Danke jetzt gehts