1 Zuletzt bearbeitet von Alois (10.02.2017 13:46:47)

Thema: Text in die Zwischenablage legen

Hallo,

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.

für Windows 8 / 64 - Dragon 12.5 Prof bzw. DPI 14

(DPI 14, Windows 8 / 64)

2

Re: Text in die Zwischenablage legen

Die preiswerteste Lösung wäre:

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.

DPI 15 (15.00.000.076) auf Windows 8.1 (64-bit)
SpeechMike Premium (LFH3500) mit Philips Device Control Center (3.0)
Intel i7 2600 QuadCore - 3.4 GHz - 8 MB L3-Cache - 6 GB RAM

3 Zuletzt bearbeitet von Alois (10.02.2017 16:10:23)

Re: Text in die Zwischenablage legen

R.Wilke schrieb:

Ab Version 13 stehen etwas vielfältigere Methoden zur Verfügung, im Ergebnis aber macht es keinen Unterschied.

Danke für den Tipp. Welche weiteren Möglichkeiten gibt es ab Version 13?

Ich bin an allen Varianten interessiert.

PS: gerade getest ...

"schneid das aus"
dieser Befehl scheint nur bei Fenstern zu funktionieren, die Select-and-Say komplett unterstützen.
Ist das richtig?

(DPI 14, Windows 8 / 64)

4

Re: Text in die Zwischenablage legen

Danke 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?

dieser 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ß.

DPI 15 (15.00.000.076) auf Windows 8.1 (64-bit)
SpeechMike Premium (LFH3500) mit Philips Device Control Center (3.0)
Intel i7 2600 QuadCore - 3.4 GHz - 8 MB L3-Cache - 6 GB RAM

5

Re: Text in die Zwischenablage legen

R.Wilke schrieb:

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?

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 <dictation>". 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

6

Re: Text in die Zwischenablage legen

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.

DPI 15 (15.00.000.076) auf Windows 8.1 (64-bit)
SpeechMike Premium (LFH3500) mit Philips Device Control Center (3.0)
Intel i7 2600 QuadCore - 3.4 GHz - 8 MB L3-Cache - 6 GB RAM

7

Re: Text in die Zwischenablage legen

R.Wilke schrieb:

Ist 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 <dictation>-Lösung: Man sieht nicht, was in der Zwischenablage landet.
Gruß, Pascal

8 Zuletzt bearbeitet von Alois (13.02.2017 19:45:51)

Re: Text in die Zwischenablage legen

R.Wilke schrieb:

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?

Da wurde ich doch glatt darauf aufmerksam gemacht, meine Signatur zu erneuern - ist geschehen - DPI 14.

P.Roch schrieb:

Vielleicht 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 ...

Danke :-)

(DPI 14, Windows 8 / 64)

9 Zuletzt bearbeitet von Alois (13.02.2017 19:44:36)

Re: Text in die Zwischenablage legen

Mein Dank für die Lösung an alle :-)

PS:

P.Roch schrieb:

Aber ja. Asche auf mein Haupt. Ich benutze gewöhnlich 'contextvalue(0)', aber das hätte möglicherweise mancher nicht verstanden.

Was hat es damit auf sich?

(DPI 14, Windows 8 / 64)

10

Re: Text in die Zwischenablage legen

Alois schrieb:

Was hat es damit auf sich?

Die Lösung für das eingangs genannt Problem hatte ich aufgezeigt:
Befehlsname: Zwischenablage <dictation>
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

11

Re: Text in die Zwischenablage legen

Vielen Dank für Ihre Hilfe Herr Poch, das liest sich sehr interessant.

P.Roch schrieb:

der Einbindung von ActiveX ergeben sich viel bessere, objektorientierte Lösungen

Was empfehlen Sie an Lektüre, wenn man sich eingehender mit der Einbindung von ActiveX beschäftigen möchte?

(DPI 14, Windows 8 / 64)