Beiträge von Banana_2_Day

    Hallo,


    Auf welchem Monitor befindet sich das Fenster? ... z.B. Notepad


    Was ist die einfachste Lösung mit AutoIt, um das festzustellen?


    Ich habe im englischsprachigen Forum ein Script gefunden, was ich nicht zum Laufen bekomme.


    https://www.autoitscript.com/f…h-monitor-is-a-window-on/


    Im Ergebnis möchte ich eine Messagebox, die die Bildschirmnummer für das jeweilige Fenster ausgibt.


    Habt Ihr ein besseres Script oder bekommt ihr obiges Script so lauffähig, dass das Ergebnis in einer Messagebox ausgegeben wird?

    Das sind interessante Anregungen. Ich teste sie gleich.


    Teste es mal so:

    Danke getestet - das hat leider nicht funktioniert. Alles, was ich über AutoIt in der vmware auslöse, bleibt in der vmware. Egal ob Tastatur oder Mausbewegung an den Bildschirmrand oben bzw. unten, womit ich auch raus aus der vmware wäre.


    Das Einzige was mir einfällt wäre ein geteilter Ordner/Clipboard und ein Programm beim Host reagiert dann auf Änderungen dort und sendet die Tastenkürzel.

    Danke - das klingt nach einer Möglichkeit. Ich probiere das aus.


    Als Lösung nehme ich derzeit, Maus auf Taskleiste - damit bin ich auch raus aus der vmware. Per Hand :-) Danke an alle!

    Code
    Send("^!")

    Funktioniert das?


    Das funktioniert leider nicht. Vmware erkennt, dass das keine Hardware - Tastatureingaben sind.


    Ganz anderer Vorschlag: Hast Du schon WinActivate() probiert?

    Wenn ich Dich richtig verstehe, soll ich ein Fenster im Hostsystem ansprechen - richtig?

    Das Windows in der vmware hat keine Kenntnis vom Hostsystem und deren Fenster.



    Gibt es da nicht eine API zur VMWare? Mit der sollte es möglich sein zwischen Hostrechner und Gast zu kommunizieren.


    Hast Du schon mal ins VMWare-Forum gesehen ob nicht jemand da schon etwas gemacht hat?


    Im vmware Forum hatte ich keinen Erfolg. Relativ wenige nutzen dort AutoIt.


    Die Idee einer API zu vmware klingt gut, wobei ich mir die Kommunikation Host -> Gast vorstellen kann. Gast -> Host dürfter schwieriger sein.

    Scheint die VixH.au3 zu sein. Das sieht mehr nach einer Einbahn-Kommunikation Host -> Gast aus.


    Ich denke, der einfachste Weg wäre über AutoIt / Windows API - das Senden von Tastaturdrücken, die als Hardwaretastatur anerkannt werden.

    strg alt auf der Tastatur eingeben, und ich befinde mich wieder im Host-System

    Allein das brauche ich per AutoIt :-)


    Bugfix und die anderen, die die Tiefen von AutoIt und Windows API ausgelotet haben, könnten das wissen, wie mit AutoIt Tastendrücke so gesendet werden, dass sie vom System als Hardware-Eingaben anerkannt werden.

    Hallo,


    in meinem Workflow wechsle ich häufig zwischen Anwendungen in der vmware und außerhalb der vmware.


    Die vmware kann ich nur mit strg + alt verlassen. Erst dann kann ich auf Anwendungen außerhalb der vmware zugreifen.


    Folgendes funktioniert hier nicht, wenn ich das als Script in der vmware ausführe:


    Send("{CTRLDOWN}{ALT}{CTRLUP}")

    Send("{CTRLDOWN}{ALTDOWN}{ALTUP}{CTRLUP}")


    Diesen Weg fand ich im englischsprachigen Forum:


    https://www.autoitscript.com/f…rn-input-to-host-machine/


    Wie kann ich die vmware mit AutoIt verlassen?


    Ggf. gibt es eine Windows API, die den Hotkey "strg alt" so senden, dass die vmware das als echte Hardware-Tastatureingabe anerkennt?


    Falls das mit AutoIt nicht geht, würde ich auch einen x-beliebigen anderen Weg nutzen, sofern ich damit sehr schnell ohne eigene Tastatureingabe zwischen der VMware und einem Programm außerhalb der VMware softwaregesteuert hin und her wechseln kann.


    Welche Möglichkeiten kennt Ihr?


    Nutzt jemand von Euch vmware?


    vmware 15.5

    Windows 8 / 10

    Hallo,


    per Drag and Drop ziehe ich einen Text aus Chrome (Fenster rechts) z.B. in Word hinein.


    Ich möchte im Zielfenster 1x Enter sowie Datum und Uhrzeit nach der Drag and Drop Aktion automatisch einfügen.


    Wie kann ich das umsetzen?


    Wie erkenne ich mit AutoIt, ob systemweit eine Drag and Drop Aktion ausgeführt wurde?


    Gibt es dafür eine Windows-Benachrichtigung, die ich mit AutoIt auswerten kann?

    Sowas?

    Hallo Water,


    im Prinzip ja, nur soll das letzte Wort erhalten bleiben. Von links ausgehend lesen und löschen - das Wort am weitesten rechts bleibt erhalten. Siehe mein Beispiel aus Post 1.



    Bei Deinem Script bleibt jeweils das erste Wort erhalten.


    Row0 Word1

    Row 1 Word2

    Row2 \

    Row 3 Word3

    Row 4 \

    Row 5 Word4


    Ich möchte, dass doppelte Worte von links ausgehend gelöscht werden.


    Gesuchtes Ergebnis ist:


    Row0 Word1

    Row 1 \

    Row 2 Word2

    Row 3 \

    Row 4 Word3

    Row 5 Word4


    oder um mein Beispiel von oben zu nehmen - hier als Formel für das Script


    Global $aArray[] = [ "das", "ist", "ein", "Hund", "\", "das", "ist", "eine", "Banane", "\", "das", "ist", "eine", "Katze", "\", "das", "ist", "ein", "Kakadu" ]


    Ergibt mit Deinem Script noch :-) nicht


    richtig wäre:


    Hund

    \

    Banane

    \

    eine

    Katze

    \

    das

    ist

    ein

    Kakadu




    sondern (falsch)


    das

    ist

    ein

    Hund

    \

    eine

    Banane

    \

    Katze

    \

    Kakadu




    Kannst Du Dein Script so abändern, dass die Doubletten von links ausgehend gelöscht werden? Vielen Dank für die bisherige Hilfe!

    Dann gehst du das array durch und prüfst ob die einzelnen Worte nochmal irgendwo im array vorkommen (StringInStr), und löscht dann ggf.


    Danke für den Hinweis, die Idee hatte ich zuvor ausgetestet.


    Gehen wir davon aus, dass ich die Textzeile als Array gesplittet habe.
    Mit der ersten For / Next Schleife durchlaufe ich das Array.


    Ab da wird es für mich kompliziert.


    Wie setze ich die Schleife so fort, dass ich nach einem gefundenen Element weiter suche, das vorherige Element lösche und dann weitersuche?


    Wenn ich ein doppeltes Element gefunden und gelöscht habe, dann hat das Array eine andere Größe - die erste For/Next Schleife funktioniert nicht mehr, da diese von x Elementen und nicht x minus gelöschte Elemente ausgeht.

    Auch weiß ich nicht, wie ich die Schleifen so ineinanderlege, dass das kein Kuddel Muddel wird.


    Ich scheitere an der mehrfachen Verschachtelung und der Neuberechnung des Arrays.


    Hast Du ein Beispiel dafür, wie es funktionieren könnte?

    Hallo,


    Quelle

    das ist ein Hund\das ist eine Banane\das ist eine Katze\das ist ein Kakadu


    Ziel

    Hund\Banane\eine Katze\das ist ein Kakadu


    Ich möchte von links beginnen und jedes Wort löschen, welches rechts vom aktuellen Begriff vorhanden ist.

    Alle doppelten Worte sollen entfernt werden.


    Achtung - der Backslash muss im Text und die Wortreihenfolge erhalten bleiben.

    Wie kann ich das elegant umsetzen?

    Ich würde das machen, aber momentan befinde ich mich im Urlaub auf Helgoland (noch bis Sonntag).

    Hallo Oscar,


    iIch hoffe, Du hattest erholsame Tage. Komme auch gerade aus dem Urlaub zurück :-)


    Es wäre aber in jedem Fall hilfreich, wenn Du uns mal einige (Beispiel-)Datensätze zur Verfügung stellst.


    Datensätze durch Semikolon getrennt


    29.10.2019;PC Welt 2019-09.pdf;Lexmark Drucker 2400;c:\Dokumente\Zeitschriften\2019

    29.10.2019;PC Welt 2019-09.pdf;Windows 10 Fehler beim drucken;c:\Dokumente\Zeitschriften\2019

    29.10.2019;PC Welt 2019-09.pdf;Tintenstrahldrucker von 300 bis 400 dpi;c:\Dokumente\Zeitschriften\2019


    Suchbegriff (keine Unterscheidung von Groß- und Kleinschreibung ... wird nicht benötigt)

    Zeitschriften Druck 2019 09


    Ergebnis

    die 3 Datensätze aus obigem Beispiel


    gesucht wird in allen 4 Feldern (siehe unten)

    Außerdem wie die Daten dann im Listview stehen sollen (Anzahl der Spalten) und nach was Du dann suchen willst.


    Felder der Datenbank

    Datum

    Dateiname

    Suchbegriffe

    Datei-Pfad


    Wenn Du weitere Angaben brauchst, ergänze ich die gerne.


    Vielen Dank!

    Kann sein, dass in einer neueren Version umgestellt wurde.

    Ich nehme es positiv auf und freue mich über jede Hilfe. Gibt viel zu lernen. Das Script habe ich - soweit meine Kenntnisse reichen - Zeile für Zeile gelesen, wenn auch nicht komplett verstanden.


    autoiter, vielleicht kannst Du die andere Frage beantworten, wie in einem Listview eine Zeile mit strg + Mausklick in die Zwischenablage gelegt werden kann. Weißt Du das?


    Unter dem Link "Oscars Datenbank" ist die letzte Version veröffentlicht, die ich auch nutze.


    Daher hoffte ich, dass Oscar schreibt, an welcher Stelle die Arraysuche in seinem Script maßgeblich greift und wo man ggf. mit AND mehrere Parameter integrieren kann.


    Aber es gibt hier auch Bereiche, in denen man die Erstellung eines Skripts erfragen kann - mit oder ohne Gegenleistung.

    Das wäre einen Versuch wert.


    Vielleicht ist dort jemand, der die Zeilen von Oscar (Oberfläche) und Bugfix (SQLite) vereinen kann. Das wäre es :-)

    Andererseits hängt das auch von deinen Inhalten ab.

    Danke für Deine Zeile. Die Stelle habe ich gesehen.

    $iStart = _GUICtrlListView_FindInText($idListView, $sSearch, $iStart, False)


    In Oscars Beitrag stand was von Verwendung von Arrays - daher bin ich davon ausgegangen, dass das über _ArraySearch laufen müsse.

    Das verwirrt mich jetzt noch mehr.


    Oscar schreibt in Post 1 zu seiner Datenbank:

    "alle Daten werden in ein Array geladen, eingegeben, sortiert, dort gesucht und von dort gespeichert."

    Listview-Datenbank v3


    _GUICtrlListView_FindInText ist doch kein Suchbefehl für ein Array.


    ... ratlos ...


    Im Beitrag über Deinem schrieb ich, wie mein Datensatz typisch aussieht - 2 Einträge pro Zeile:


    Beispiel:

    "Oscars Listview-Datenbank v3 - mit Suche nach mehreren Begriffen" ; "h t t p s://autoit.de/thread/86654-oscars-listview-datenbank-v3-mit-suche-nach-mehreren-begriffen/"


    Ich habe mich bei der Suche in Oscars Script festgefahren. Gestern und heute mehrere Stellen getestet. Die meisten offenen Sachen konnte ich ändern, bis auf 2 - UND-Suche und Strg + Mausklick auf ein Element mit Kopie in Zwischenablage.

    Eine umfangreiche Suche (mit mehreren Suchwörtern) würde ich auch lieber in SQLite ausführen. Das ist mit AutoIt-Mitteln nicht sehr schnell.

    Die Suche kann langsam sein.Es wird über den Tag verteilt ca. 20x jeweils eine Suche sein, um die Verknüpfung zu erhalten.


    Die Daten bestehen lediglich aus

    Stichworten ( mehrere Stichworte durch ein Leerzeichen getrennt )

    und eine Verknüpfung ( Pfad, URL etc. )


    Beispiel:

    "Oscars Listview-Datenbank v3 - mit Suche nach mehreren Begriffen" ; "h t t p s://autoit.de/thread/86654-oscars-listview-datenbank-v3-mit-suche-nach-mehreren-begriffen/"


    Die Suche ist beschränkt auf die Stichworte. Es wird also nur gesucht in der Zeichenkette

    "Oscars Listview-Datenbank v3 - mit Suche nach mehreren Begriffen"

    ...


    Sagst Du mir bitte, wo genau ich in Deinem Skript ansetzen muss, um die Suche von einem Suchparameter in mehrere Suchparameter zu ändern?

    Dann würde ich das gerne versuchen.


    Und vielleicht hast Du auf die zweite Frage eine Antwort:

    Wie kann ich in der gefilterten (grün unterlegten) Ansicht in Deiner Datenbank den aktuell ausgewählten Datensatz in die Zwischenablage legen, nachdem er mit strg + Doppelklick ausgewählt wurde?

    ClipPut ( ??? )



    Alle anderen Varianten sind für den Winter eine gute Idee, im Moment würde ich gerne auf Deine funktionierende Datenbank zurückgreifen.

    Es fehlt nur die Filterung nach mehreren Worten.


    Welche Datenbank(struktur) ermöglicht dieses schwarmartige Speichern

    Vielleicht ist es hilfreich zu erwähnen, dass die zu durchsuchenden Daten jeweils ein Datensatz = eine Zeile sind.


    Und es muss somit nur das Vorkommen alle Suchbegriffe in dem ein Datensatz über zum Beispiel StringInString sichergestellt sein. Sehe ich das richtig?



    Trennzeichen überlegst (im Zweifel eben das Leerzeichen)

    So habe ich mir das auch gedacht. Im Moment finde ich in Oscars Datenbank nicht die richtige Stelle, um das zu versuchen.


    Die Idee, die SQLite von bugfix mit der Datenbank (Oberfläche) von Oskar zu mischen gebe ich erst mal auf, dazu fehlen mir die Kenntnisse und es scheint komplizierter zu sein, ansonsten hätte bugfix bestimmt eine Variante veröffentlicht.