Beiträge von SOLVE-SMART

    Ganz hervorragend Oscar 👍 .
    Die Funktion kommt gleich in meine Snippets (wenn du erlaubst 😇). Bin mir zwar nicht sicher wann ich sie mal nutzen werde, doch "besser man hat als man hätte" 🤭 .


    Kleine Verbesserung/Anmerkung:

    AutoIt
    #include <SendMessage.au3>
    #include <WinAPIHObj.au3>
    #include <WinAPIInternals.au3>

    Diese drei includes sind nicht nötig, für dein angepasstest Skript. Es reicht also wenn "nur" diese eingebunden sind:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WinAPIGdi.au3>
    #include <WinAPIShellEx.au3>
    #include <WinAPISysInternals.au3>

    Dies sollte die bzw. eine Lösung für dein Anliegen sein Racer.

    Viele Grüße
    Sven

    Ich habe gerade mal ein wenig herum experimentiert und denke es könnte ein BUG sein! Denn mit GUICtrlSetPos($Icon1, 40, 40, 19, 19) als Zeile 30, wird das Icon auf 19x19 gesetzt, doch beim erneutem Button-Klick, wieder auf die icontype Eigenschaft "normal" von GUICtrlSetImage (also auf eine andere Größe). Also das der Style immer überwiegt ist seltsam.

    Zudem konnte ich mit 20x20 GUICtrlSetPos($Icon1, 40, 40, 20, 20) gar keinen Effekt feststellen 🤔 😒 .


    Viele Grüße
    Sven

    Hi Racer ,


    mit GUICtrlCreateIcon() vergibst du eine spezifische Größe. Beim button event jedoch (mit GUICtrlSetImage()), setzt du "nur" ein anderes Icon ein (mehr geht in der Funktion auch nicht, ist klar). Dabei fällt die Größenzuteilung weg. Nimm mal in Zeile 13 die "Width" und "Height" Angaben weg und schaue es dir dann an.


    Viele Grüße
    Sven

    Hier das abgeänderte Skript von UEZ , damit es zumindest lauffähig (unter Win10 mit AutoIt v3.3.16.1) ist.

    💡 Hinweis: Ich habe keine detaillierten Tests gemacht, abgesehen vom Start der Anwendung. Ich habe aktuelle #includes hinzugefügt und eine globale (doppelte) Variablen Deklaration entfernt, mehr nicht. Also keine wesentlichen Änderungen.


    Hoffe das bringt dich zumindest etwas weiter 🤞 .


    Viele Grüße
    Sven

    Ja wie Moombas bereits erläutert hat WhiteHorse, es hängt u. a. vom Geldbeutel ab.
    Ich hatte derzeit ein 13 Zoll Gerät, was richtig, auch geschleppt werden muss 😅 .

    Heute würde ich mir ehrlich gesagt eher ein kleines Notebook kaufen, anstatt ein Tablet, wenn es um programmatische Arbeiten geht.
    Tablets sind meiner Ansicht nach eher für das Surfen im Netz geeignet, ggf. noch für die Unterstützung im Unterricht bspw. oder bei Präsentationen (Übertragung auf größere Monitore/TV).
    Am Ende triffst du die Entscheidung, doch suche doch mal nach Vor- und Nachteilen der Nutzung von Tablets im Bezug auf programmatische Tätigkeiten - da wirst du sicher etwas finden 😀 .


    Viele Grüße
    Sven

    Hi WhiteHorse,


    ich habe ein ähnliches Szenario mal ein paar Monate versucht/gelebt. Mein damaliges Tablet hatte eine Full-HD Auflösung und die Leistung reichte auch aus, AutoIt ohne Probleme nutzen zu können. Was mich allerdings davon abgebracht hatte, weil es mich sehr nervte war, dass ich ohne richtige Tastatur keinen Spaß an der Entwicklung von Programmen habe. Die Windows interne Tablet-Tastatur war für mich grausam in der Bedienung.

    💡 Also mein Tipp: Wenn du dies tun möchtest, dann empfehle ich ein Tablet mit Tastatur. Bspw. "Microsoft Surface (Pro)" [...] da gibt es diverse gebrauchte und trotzdem leistungsstarke Modelle (je nach dem was du ausgeben willst und kannst).


    Viele Grüße
    Sven

    Ich hatte auch mal was in die Richtung gebastelt: _WinAPI_MarkScreenRegionAndCapture 0.92 build 2017-01-22

    Vielleicht nützlich für dein Anliegen...

    Hi UEZ ,


    dein Link scheint ins Leere zu laufen. Ich komme damit nicht zum verlinkten Thread (weder mit Chrome, noch mit Firefox). Ich habe kurz versucht Google und die Forumssuche dazu zu bemühen, leider erfolglos. Schaust du bitte nochmal, ob du den Link aktualisieren kannst? Danke 🤝 .


    Viele Grüße
    Sven

    Hi zusammen,


    eigentlich wurden bereits alle mir bekannten Möglichkeiten, welche für den beschriebenen Anwendungsfall relevant sind, aufgelistet/vorgeschlagen 👍 .
    Vielleicht dennoch eine weitere: Logging => Falls du die Aktionen (copy etc.) selbst verwaltest, dann baue doch Log-Statements ein (Log-Einträge die du in eine Log-Datei schreibst). Dann kannst du bei Bedarf reinschauen und musst dich nicht visuell durch Progress-Anzeigen (ToolTip, ProgressBar etc.) ablenken lassen. Du siehst also "bei Bedarf" ob der Prozess irgendwo hängt oder wie weit er ist (abhängig davon wie viel und was du loggst).


    💡 Kleiner Hinweis zu dieser Variante: Die eigentlich Verarbeitungszeit vergrößert sich damit auch etwas, da natürlich der Schreibvorgang in die Datei ein wenig Zeit in Anspruch nimmt. Allerdings für solche unkritischen Anforderungen kein Problem meiner Meinung nach.


    Viele Grüße
    Sven

    Hi gmmg ,


    ist der zweite Parameter iconName, der Funktion GUICtrlCreateIcon() gewollt die Zahl 25 (in Zeile 44) oder nicht?

    Ansonsten ist es auch noch hilfreich, wenn du uns die beiden UDFs noch zu Verfügung stellst, damit man auch wirklich testen kann 😉 .

    AutoIt
    #include <D:\Scripte\MS_AccessCom\Access UDF\Access_UDF.au3>
    #include <D:\Scripte\ArrayMultiColSort\ArrayMultiColSort.au3>

    Viele Grüße
    Sven

    Ich habe ein kleines Tool geschrieben, das eine Textdatei einliest (<Name der Farbe;Hex Code>) und sie in einer Listview farbig darstellt. Manchmal suche ich nach einer bestimmten Farbe und wenn die Liste unsortiert ist, dann ist das nicht so optimal, um die Farbe zu finden.

    Interessanter Anwendungsfalls, Danke dir UEZ .


    Außerdem ist das ein interessantes Thema . ;)

    Finde ich gut 😊 .


    Ist die Pixelbreite der einzelnen Farbe bzw. die Darstellung, abhängig von der Gesamtbreite der GUI? Also falls die einzelne Farbe ein Pixel breit sein sollte, skaliert diese Breite bei resize der GUI? Ich habe mir den Code nicht genau angeschaut, muss ich zugeben. Vielleicht könnte ich es auch dort erfassen - sind nun aber nicht gerade nur 50 Zeilen Code, daher frage ich lieber direkt UEZ.


    Viele Grüße
    Sven

    Wahrscheinlich irritiert den das, dass beide Fenster den gleichen Titel oder so haben.

    Warum sagst du das nicht gleich! Ja das ist sicherlich ein Grund, neben den anderen Hinweis den ich oben geschrieben hatte:

    Zitat

    💡 Im zweiten Parameter "text" welcher bei WinExists, WinActivate und WinWaitActivate optional ist, darf die Klasse nicht rein.


    Ich bedanke mich nochmals sehr bei dir für deine Zeit & Mühen!

    Alles klar, vielleicht hat noch jemand anders Zeit und Ambition dir hierbei zu helfen. Man kann auch bei gleichnamigen Titeln, dass "richtige" auswählen, aber ohne es bei mir testen zu können, macht dies für mich keinen Sinn. Daher bin ich raus.

    Alles Gute dir.

    Viele Grüße
    Sven

    Hi UEZ ,

    das sieht sehr vielversprechend aus, doch weiß ich ehrlich nicht genau welcher Anwendungsfall dahinter steckt bzw. welche es geben kann?
    Hilfst du mir da bitte mal auf die Sprünge, dann kann ich ggf. auch Ideen/Wünsche/Überlegungen einbringen 🤝 .

    Danke dir.

    Viele Grüße
    Sven

    Folgendes habe ich probiert, vielleicht kannst du ja direkt den Fehler erkennen:

    Also du willst in der Schleife immer und immer wieder AnyDesk in den Vordergrund bringen und dann "Annehmen" klicken, egal ob das bereits passiert ist.
    Das wird so nicht funktionieren.

    💡 Im zweiten Parameter "text" welcher bei WinExists, WinActivate und WinWaitActivate optional ist, darf die Klasse nicht rein.


    Kannst du bitte mal diese Version an Code ausprobieren:

    Ich gehe hier davon aus, dass ein Fenster mit Titel "AnyDesk" aufpoppt und erst wenn dieses aufpoppt/aktiv/im Vordergrund ist, dann wird der Button "Annehmen" gewählt.

    Viele Grüße
    Sven

    Falls das folgende nicht den Klick durchführt, dann wechsle im Au3Info Tool mal auf den Reiter Control und nutze ggf. die Advanced Mode (dort doppel-klicken und einfügen).

    ControlClick('AnyDesk', '', '[CLASS:basic_button#9]')


    Allerdings muss ich sagen, dass ich dir bereits im Beitrag #2 gesagt hatte, dass du die Hilfe mal bemühen solltest, denn aus dem Beispiel dort wäre genau dies auch hervorgegangen 🧐 .

    Viele Grüße
    Sven

    Wenn du nun also mit dem Au3Info Tool über den grünen "Annehmen" button hoverst, wird dieser wahrscheinlich nicht als einzelnes Control angezeigt oder doch?
    Daher nochmal die Bitte: Screenshot des Tools während du über die Bereiche des AnyDesk Fensters hoverst bzw. über den Button.
    Danach sehen wir, ob die die CLASS verwenden kannst oder nicht.

    1. Alternative wenn nicht: Relative Koordinaten zum Klick benutzen (siehe mein Code-Beispiel weiter oben).
    2. Alternative wenn nicht: Mit PixelSearch() in einem gewissen Bereich des Fensters (auch wieder relativ zum Fensterinhalt, nicht zum Screen) nach dem grün des Buttons suchen und dort dann per Maus klicken lassen.

    Viele Grüße
    Sven

    Und könntest du mir bitte endlich mal den Unterschied zwischen der Klasse von "Basic Window Info" und "Basic Control Info" sagen? Danke.

    Nein, woher auch? Wie wäre es wenn du beschreibst wo du diese Angaben her hast oder siehst? Geht es um das Au3Info Tool, welches dir diese Klassen anzeigt, wenn du über das aufpoppende AnyDesk Fenster hoverst? Vielleicht ich es dir nicht bekannt, doch ein Fenster kann auf Grund seines Aufbaus (bspw. der darunter liegenden Programmiersprache oder des verwendeten Frameworks (wie Swing, Qt etc.)) völlig unterschiedliche Controls/Elemente bzw. Klassen aufweisen. Also daher ist mir kein Basic Window Info oder Basic Control Info bekannt.

    Auch hierzu bitte Screenshots, damit man zumindest Versuche starten kann. Es ist nicht so, als würde ich mir extra AnyDesk installieren um dein Szenario durchzuspielen, ein wenig mehr Zuarbeit braucht es schon - schließlich bist du hier der Fragende, meinst du nicht?


    Bitte nicht falsch verstehen, doch Forderungen finde ich unangebracht.


    Viele Grüße
    Sven

    Ich glaube, dein Code ist da wirklich sehr ausführlich, ich glaube sogar fast schon zu sehr ausführlich.

    Der Code ist deswegen "ausführlich", so wie du es beschreibst, da er weitestgehend robust sein soll.

    Das geht bestimmt kürzer, mir fehlt da sogar (mit dem ersten Code im Anfangspost verglichen) glaube ich nur eine Zeile, die korrigiert werden muss.

    Für dein beschriebenes Szenario reicht es aus meiner Sicht nicht, nur eine Zeile zu korrigieren.


    💡 Um dir besser helfen zu können ist aus zumindest aus meiner Sicht nötig, den Ablauf besser zu verstehen. Kannst du daher mal ein paar Screenshots machen in denen du deutlich machst, was du manuell genau tun würdest? Dann sind die Vorschläge sicherlich auch besser.


    Viele Grüße
    Sven