Pixelchecksum probleme auf mehreren system

  • hallo erstmal, ich hätte da ein grundlegendes Problem mit Pixelchecksum und hoffe hier etwas hilfe zu bekommen.
    es geht um folgendes, ich möchte den befehl pixelchecksum nutzen um ein wiederkehrendes immer gleiches bild zu erkennen. dies funktioniert auf meinem system auch recht gut. nun wollte ich es auf einem zweiten system ebenfalls realisieren und musste feststellen das dort nicht der selbe wert von pixelchecksum zurückgegeben wird wie auf meinem system, ebenso verhält es sich auf einem dritten system (3 unterschiedliche werte).

    Nun meine frage; woran liegt es das sich die pixelchecksum werte auf unterschiedlichen systemen unterscheiden?

    Die auflösungen sind jeweils die selben, die koordinaten ebenfalls, sowie die installierte software. (2 systeme verfügen über ein neu installiertes xp ohne weitere programme). zunächst nahm ich an die ursache läge an der hardware doch das austauschen der grafikkarten (die selbe in jedem system verwendet) zeigte keinen erfolg. auch in verbindung mit der selben festplatte erhalte ich jeweils 3 unterschiedliche Werte. Nun programmiere ich nicht nur um die programme auf meinem eigenen system zu nutzen und würde demzufolge gern skripte erstellen die ohne anpassung auf diversen systemen laufen.

    bin für tips diesem thema entsprechend dankbar!

  • An der Hardware wird es wohl kaum liegen. Mögliche Ursachen die mir einfallen sind:

    Schriftarten / Schriftgrößen / Windows-Theme / Schrift- oder Kantenglättung / ggf eingestellter Gamma uswusf...

    Wenn abzusuchenden Stellen identisch sind, ist auch die Checksum identisch. Poste doch ggf. mal screenshots (und vllt dein script)

  • zunächst einmal vielen dank für die schnelle antwort. es ist zunächst einmal sehr hilfreich zu wissen das die pixelchecksum nicht von der hardware beeinträchtigt wird. es handelt sich bei dem von mir zu testzwecken genutzten bereich um ein programm (in meinem fall um ein skatspiel) das nicht in einem windows fenster ausgeführt wird (also eine windows typische fensterleiste ist nicht vorhanden). Indem sinne obliegt es nicht mir die programm eigenen werte festzulegen. ich vermute aber das sich diese bei gleicher auflösung und gegebenenfalls gleicher grafikkarte nicht voneinander abweichen sollten.
    ein richtiges script das ich posten könnte gibt es in dem sinne noch nicht da mir dieses problem vor der erstellung aufgefallen ist und ich vor dem eigentlichen anfertigungsprozes dieses zunöchst lösen möchte. ich habe mir lediglich ein kleines programm "zusammengebastelt" das mir permanent die pixelchecksummen eines zuvor definierten bereiches ausgibt. dieses script werde ich auch anhängen.

    ich werde nun zunächst einmal sämmtliche grafikextras wie kantenglättung windows-themes und ähnliches anpassen und es erneut versuchen. donnoch möchte ich dieses thema noch nicht schliessen und bin für weiterführende ratschläge oder neue anmerkungen dankbar.


    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Checksum", 274, 85, 193, 125)
    GUISetBkColor(0xA6CAF0)

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

    $Label1 = GUICtrlCreateLabel("X1", 8, 12, 17, 17)
    $Label2 = GUICtrlCreateLabel("Y1", 72, 12, 17, 17)
    $Label3 = GUICtrlCreateLabel("X2", 136, 12, 17, 17)
    $Label4 = GUICtrlCreateLabel("Y2", 200, 12, 17, 17)

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

    $Input1 = GUICtrlCreateInput("Input1", 24, 8, 41, 21)
    $Input2 = GUICtrlCreateInput("Input2", 88, 8, 41, 21)
    $Input3 = GUICtrlCreateInput("Input3", 152, 8, 41, 21)
    $Input4 = GUICtrlCreateInput("Input4", 216, 8, 41, 21)

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

    $Input5 = GUICtrlCreateInput("Input5", 40, 40, 193, 21)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $a= GUICtrlRead($Input1)
    $b= GUICtrlRead($Input2)
    $c= GUICtrlRead($Input3)
    $d= GUICtrlRead($Input4)
    $pixi=PixelChecksum($a, $b, $c , $d)
    GUICtrlSetData($Input5,$pixi)

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

    winsetontop($Form1,"",1)

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
  • Hallo,
    zunächst verweise ich mal auf die Forenregeln insbesondere die 2. Hälfte.

    Dann zum Topic:
    Es gibt Scripte, die mit Pixelchecksum auch auf Rechnern mit unterschiedlicher Bildschirmauflösung zurechtkommen. Bisher habe ich da keine negativen Erfahrungen gemacht.
    Da ein Script aber immer nur auf einem Rechner gleichzeitig läuft sind die auf den anderen Rechnern maßgeblichen Einstellungen für Schriftart, Gamma usw irrelevant. Bilde lokal deine Pixelchecksum und vergleiche sie mit den bisher in diesem Bereich aufgetretenen Checksummen auf den anderen Rechnern. Bei maximal 4 Beteiligten (und vollkommen unterschiedlichen Rechnern) würde ich mir dahingehend keinen Stress machen, und einfach vier Vergleiche durchführen.
    Bei einem Skatprogramm kommt es bestimmt nicht auf die hundertstel Sekunde an, da reicht es, wenn man nach einer Zehntelsekunde das Ergebnis eines Vergleichs bekommt.
    Falls das Skatprogramm im Fenstermodus laufen sollte, wäre es hilfreich, dieses Fenster immer in derselben Größe zu haben (im Verhältnis zur Bildschirmauflösung), schau dir dazu

    [autoit]

    @desktopwidth @desktopheight und winmove()

    [/autoit]

    an.

    Btw. um welches Skatprogramm geht es?

    ciao
    Andy

  • vielen dank für die zahlreiche resonanz. ich habe zurzeit die systeme angepasst(themes) und habe des weiteren sämtliche zusätzliche grafischen ergänzungen von xp deaktiviert. leider hat dies keinerlei erfolg gezeigt. ein weiteres phänomen das mir aufgefallen ist, ist dass ich bei einer entsprechenden standart farbe für den hintergrund die selbe pixelchecksumme bekomme, vom start-butten der task leiste jedoch nicht.

    an Andy:

    ich nehme an sie spielen auf die anmerkung in den forenregeln an, dass keinerlei fragen zu programmen beantwortet werden bei denen es sich um, ich möchte es mal unerwünschte software zu beschriebenen zwecken handelt, nennen. zu diesem punkt kann ich berühigen ich bin nicht an einer dieser programme interessiert und arbeite auch zur zeit nicht an einem skript. ich sichte für mich zunächst nur die möglichkeiten die mir autoit bietet. diverse programme werden von mir lediglich als beispiele betrachtet (onlinerollenspiele entziehen sich ohnehin meiner kenntnis). und erlauben sie mir bitte an dieser stelle kurz zu etwas mehr vertrauen aufzurufen. mir ist sicherlich bekannt das es eine bestimmte menge von schwarzen schafen gibt, dennoch ist leider die foren stimmung in diversen programmierer-foren in den letzten jahren recht feindseelig gewurden und man gerät bei den grundlegensten fragen in verdächtigung. dies soll jetzt auch keine grundsatz diskussion werden, ich wollte dies nur einmal anmerken. auf jedenfall bin ich für ihre beteiligung an meinem problem sehr dankbar.

    an peethebee:

    können sie mir bitte die möglichkeit des einmaligen kalibrierens näher erläutern. ich bin mir nicht sicher ob sie damit auf das "sammeln" der pixelchecksums bei jedem rechner anspielen. dies wäre leider sehr umständlich da ich aus beruflichen gründen sehr häufig die einzelnen systeme wechsle. ich benötige also ein skript das ohne größere anpassungen auf allen systemen gleich gut funktioniert.

  • ich quote mich mal selbst....

    Zitat

    Btw. um welches Skatprogramm geht es?

  • also ich kenne das Problem auch .... die Pixelerkennung ist nicht universell einsetzbar!!

    Daher kalibrieren, eine (oder besser die!) Beispieldatei, Bildausschnitt etc. einmal bei der Installation "einscannen", den Wert in einer Ini-Datei ablegen, und dann
    bei jedem Programmaufruf einfach einlesen -->>> klappt 100%


    und um Kohl zu zitieren: "You can say You to me too!"

  • Ok vielen dank soweit. leider nicht die antwort die ich mir erhofft hatte aber dennoch danke für die rege anteilnahme. ich versuche es zurzeit mit einem festplatten abbild das ich auf andere systeme kopiere. sollte es erfolgreich sein werde ich dies nochmals posten.
    das skat-programm heist lediglich skat und ist von heinlein. es ist kostenpflichtig aber für skatfreunde zu empfehlen. meine version kann ich leider grad nicht mitteilen da ich es nur noch auf meinem notebook habe, das ich heute in der firma gelassen habe. bei bedarf kann ich dies aber morgen abend nachsteuern.