ImageSearch - Problem auf unterschiedlichen Displays.

  • Hi Leute,

    Zur Pflege einer Kundendatenbank über Remote Desktop Verbindung nutze ich teilweise AutoIt Skripte mit ImageSearch.au3.
    Das hat sich angeboten, weil ich keine Dateien auf dem Terminal Server ablegen kann.

    Ich weiß, dass ImageSearch hier einen miesen Ruf hat. Allerdings hatte es hier auf unterschiedlichen PCs seit Jahren einwandfrei funktioniert und ermöglichte für sonst nicht importierbare Daten eine gute und schnell umsetzbare Alternative zur Datenpflege. Nun hat es mich aber auch erwischt:

    An einem Laptop spuckt ImageSearch eine falsche Höhenkoordinate aus. Wenn ich den Laptop an einen Monitor anschließe und das interne Display durch zuklappen abschalte, funktioniert alles wie gewohnt. Nur bei Nutzung des Laptop Display tritt das Problem auf. Ich schätze die Ungenauigkeit etwa auf einen Faktor +0,25 je Pixel.
    Das Display hat 1920x1080 Pixel wie der Monitor an dem der Laptop angeschlossen wird.
    Der Laptop ist ein Lenovo Thinkpad E560 mit zwei Grafikeinheiten. Einmal die Intel Grafik der CPU "HD Graphics 520" und "AMD Radeon R7 M370". Zwischen beiden kann man auch hin und her schalten. Im AMD Catalyst Center gibt es jedenfalls Menüpunkte zu "Umschaltbare Grafiken", wo man Anwendungen je nach Akku oder Netzbetrieb eine GPU zuweisen kann. Vielleicht hat es damit zu tun?


    Hat hier jemand schon Erfahrungen mit dem Phänomen oder einen Tipp für mich?

    Grüße autoiter

  • Hi,
    wie wertest du die Bildschirmbreite- und Höhe auf den unterschiedlichen Displays aus?
    Probier mal
    $VirtualDesktopWidth = DllCall($hDLL_User32, "int", "GetSystemMetrics", "int", 78) ;sm_virtualwidth
    und 79 für die Höhe.

  • Hallo Andy,

    Eigentlich mag ich es nicht zugeben, aber falls es noch einen wie mich gibt, kann ich ihm hier eine Info geben, die ihn davor bewahrt hier eine Nonsens-Anfrage zu stellen..

    Erst nachdem ich deinen Kommentar las, bin ich auf die Idee gekommen, mir mal Höhe und Breite anzeigen zu lassen.
    Im Grafiktreiber war 1920x1080 eingestellt. Allerdings wurde mir eine Auflösung von 1536x864 angezeigt.
    Das Problem war ganz einfach eine Einstellung im Windows 10 Menü "Start->Einstellungen->System->Bildschirm". Dort war automatisch eine Skalierung von 125% eingestellt.


    Bildschirmanpassung.PNG


    Nach Korrektur dieser Einstellung auf 100% war alles gut.

    Grüße autoiter

  • Hi Leute,

    Zur Pflege einer Kundendatenbank über Remote Desktop Verbindung nutze ich teilweise AutoIt Skripte mit ImageSearch.au3.

    Dann mache diese unsichere Lösung immer vom gleichen Bildschirm aus. Oder nutze eine sichere Methode um eine so sensible DB zu pflegen. So etwas über Imagesearch zu lösen ist grob fahrlässig.

    Das hat sich angeboten, weil ich keine Dateien auf dem Terminal Server ablegen kann.

    Laß dir die nötigen Berechtigungen einräumen.

  • Prinzipiell hast du natürlich Recht.
    Mit der Berechtigung Dateien auf dem Terminal Server abzulegen und starten zu können, wäre dieser Quatsch nicht notwendig. Wir haben das auch mehrfach angesprochen. Aber der Kunde möchte das im Kontext der Terminal Server Session nicht zulassen.

    Oder nutze eine sichere Methode um eine so sensible DB zu pflegen. So etwas über Imagesearch zu lösen ist grob fahrlässig

    Das möchte ich nicht ganz so stehen lassen. Natürlich werden die Zieldatensätze geprüft, bevor sie abgespeichert werden. Dafür ist kein ImageSearch notwendig.
    Der größte Nachteil dieser Methode, Daten über die Benutzeroberfläche einzupflegen, liegt in der Langsamkeit. Aber das man hier nicht valide die Richtigkeit der hinterlegten Daten prüfen könnte, möchte ich nicht bestätigen.
    Natürlich geht das. Aber ja, es ist am Ende des Tages Pfusch.

    Grüße autoiter

  • Natürlich geht das. Aber ja, es ist am Ende des Tages Pfusch.

    Wir haben das auch mehrfach angesprochen. Aber der Kunde möchte das im Kontext der Terminal Server Session nicht zulassen.

    wzbw... :Face:

    Genau DAS ist das Problem mit den Kunden.....