ich möchte einen gerade gesagten Text in die Zwischenablage legen, ohne dass der Text irgendwo niedergeschrieben wird.
Ich sage das Befehlswort „Zwischenablage“ und danach den kurzen Text, der in die Zwischenablage gelegt werden soll. Dabei handelt es sich um wenige Worte.
Zum Beispiel
Zwischenablage teste das mal
Und in die Zwischenablage wird „teste das mal“ gelegt.
Wie kann ich das mit einem Dragon-Skript machen, ohne dass ich jede Formulierung, die nach dem Befehlswort „Zwischenablage“ gesagt wird, in eine Script-Liste stehen muss?
Vielen Dank!
PS: ich bin an jeder Idee interessiert, auch wenn diese selbst noch keine Lösung darstellt.
Den Text diktieren und nach einer Pause den Befehl "schneid das aus" sagen. Dann ist der Text nicht mehr auf dem Bildschirm, aber in der Zwischenablage.
Ab Version 13 stehen etwas vielfältigere Methoden zur Verfügung, im Ergebnis aber macht es keinen Unterschied.
_______________________________________
Dragon Professional 16 auf Windows 10 Pro und Windows 11 SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo) HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD
ZitatDanke für den Tipp. Welche weiteren Möglichkeiten gibt es ab Version 13?
Ich bin an allen Varianten interessiert.
Entschuldigung, aber wäre das nicht so, als würde man sich darüber austauschen, wie man sich in einem fremden Land bewegt, wo man in absehbarer Zeit nicht hinkommt?
Zitatdieser Befehl scheint nur bei Fenstern zu funktionieren, die Select-and-Say komplett unterstützen. Ist das richtig?
Das ist naheliegend, bei nicht voll unterstützten Anwendungen ist das Verhalten an diesen Stellen ohnehin nicht kalkulierbar. Allerdings sollte die zuletzt getätigte Äußerung schon korrekt erfasst werden, aber wer weiß.
_______________________________________
Dragon Professional 16 auf Windows 10 Pro und Windows 11 SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo) HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD
Zitat von R.WilkeEntschuldigung, aber wäre das nicht so, als würde man sich darüber austauschen, wie man sich in einem fremden Land bewegt, wo man in absehbarer Zeit nicht hinkommt?
Vielleicht kommt Alois doch bald "ins fremde Land". Wollen wir ihm mal den Mund wässrig machen: Ab Version 13 Prof. ließe sich sein Anliegen höchst einfach realisieren als "Zwischenablage ". Das Skript bestünde dann aus der einen Anweisung "Clipboard = ListVar0". In Version 12.5 ist ohne Zuhilfenahme eines Textfeldes mit voller Textsteuerung nichts zu machen. Gruß, Pascal
Ist eine kleine Korrektur gestattet? – Das Schlüsselwort um auf die Variable zuzugreifen lautet ListVar1.
Und nur zur Ergänzung: die sogenannte freie Diktiervariable wurde in 13 Pro eingeführt und ist auch in DPI 14 und 15 verfügbar.
Die Regeln für die Verwendung sehen vor, dass prinzipiell alle Wörter, die im Vokabular enthalten sind, einzeln oder in Verbindung miteinander, solange der Atem reicht, ausgelesen werden können, wobei die Variable aber lediglich einmal und am Ende des Befehls verwendet werden kann.
Und letztlich, der Vorteil, nicht den Weg über die freie Variable zu nehmen sondern den gewünschten Text zunächst in eine Anwendung zu diktieren und dort auszuschneiden, besteht immerhin darin, dass man dann kontrollieren kann, was Dragon überhaupt verstanden hat.
Ein selbst gebastelter Befehl mit dieser Variable, den ich täglich verwende, benennt beispielsweise ein beliebiges Element im Windows-Explorer auf Anhieb um, ohne Klick usw. Das Skript macht nichts anderes, als zunächst die F2-Taste zu senden, wodurch das aktuell markierte Element zum Umbenennen vorbereitet wird, und dann als neuen Namen den Text aus der Variable einzusetzen und die Enter-Taste zu drücken. Da ich täglich alle möglichen Dateien im Explorer für meine Zwecke noch umbenennen muss, erspare ich mir damit eine Menge Zeit.
Allerdings, wenn der Text aus der Variable extrahiert wird, gibt es allem Anschein nach kein Kontext-Modell oder nur ein irgendwie andersgeartetes, sodass nicht selten kuriose Dateinamen erzeugt werden. Wenn ich dann ergründe, warum Dragon mein Diktat in dieser bestimmten Weise umgesetzt hat, und daraus lerne, kann ich es gleich beim nächsten Mal besser machen.
Aber für einen größeren Blindflug würde ich diese Methode nur unter Vorbehalt empfehlen.
_______________________________________
Dragon Professional 16 auf Windows 10 Pro und Windows 11 SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo) HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD
Zitat von R.WilkeIst eine kleine Korrektur gestattet? – Das Schlüsselwort um auf die Variable zuzugreifen lautet ListVar1.
Aber ja. Asche auf mein Haupt. Ich benutze gewöhnlich 'contextvalue(0)', aber das hätte möglicherweise mancher nicht verstanden. Ansonsten teile ich die Kritik an der -Lösung: Man sieht nicht, was in der Zwischenablage landet. Gruß, Pascal
Zitat von R.WilkeEntschuldigung, aber wäre das nicht so, als würde man sich darüber austauschen, wie man sich in einem fremden Land bewegt, wo man in absehbarer Zeit nicht hinkommt?
Da wurde ich doch glatt darauf aufmerksam gemacht, meine Signatur zu erneuern - ist geschehen - DPI 14.
Zitat von P.RochVielleicht kommt Alois doch bald "ins fremde Land".
Schon fast da (da wäre wohl DPI 15?).
Daher möchte ich meine Frage an Rüdiger erneut aufgreifen:
Danke für den Tipp. Welche weiteren Möglichkeiten gibt es ab Version 13?
Ich bin an allen Varianten interessiert.
Wobei ich vermute, ListVar1 soll es sein? ... schaue ich mir gerade an.
edit: ja - nun - ich bin wohl im fremden Land angekommen ...
Die Lösung für das eingangs genannt Problem hatte ich aufgezeigt: Befehlsname: Zwischenablage Skript: Sub main clipboard = ListVar1 end sub
Dasselbe leistet: Sub main clipboard = UtilityProvider.ContextValue(0) end sub
ListVar1 ... ListVar20 entstammt der originären Dragon-Skriptsprache, also etwa Version 4, um auf variable Stellen im Befehlsnamen Bezug zu nehmen. Sehr viel anstellen konnte man mit dieser Sprache nicht, die Makros waren auch nicht sehr elegant. Mit Einführung der Erweiterten Skriptsprache und der Einbindung von ActiveX ergeben sich viel bessere, objektorientierte Lösungen. ListVarx wird dabei durch das Array UtilityProvider.ContextValue(x) (x=0...19) ersetzt, was zwar umständlich aussieht, aber letzten Endes mehr Flexibilität ermöglicht, auch wegen der Variablen UtilityProvider.ContextValueCount. Soviel in aller Kürze. Gruß, Pascal