gestern wurde ich gefragt, ob man einen markierten Ausdruck automatisch in Zitatzeichen setzen kann. Gemeint waren damit doppelte spitze Klammern. Man kann. Das unten stehende Skript habe ich seit Jahren bei mir liegen, anlässlich der Frage habe ich es mal hervor geholt und um die gewünschte Variante erweitert. Als Befehlsnamen habe ich zur Vereinfachung gewählt:
in
wobei eine Liste bezeichnet mit den Elementen: Klammern, eckige Klammern, ..., Zitatzeichen.
Vewendet wird es, indem man den Ausdruck markiert und dann diktiert:
in Klammern in eckige Klammern ... in Zitatzeichen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Sub Main SendSystemKeys "{Ctrl+c}" Selection$ = Clipboard$ If ListVar1 = "Klammern" Then Selection$ = CStr(Chr(40)) + Selection$ + CStr(Chr(41)) If ListVar1 = "eckige Klammern" Then Selection$ = CStr(Chr(91)) + Selection$ + CStr(Chr(93)) If ListVar1 = "geschweifte Klammern" Then Selection$ = CStr(Chr(123)) + Selection$ + CStr(Chr(125)) If ListVar1 = "Anführungszeichen" Then Selection$ = CStr(Chr(34)) + Selection$ + CStr(Chr(34)) If ListVar1 = "einfache Anführungszeichen" Then Selection$ = CStr(Chr(39)) + Selection$ + CStr(Chr(39)) If ListVar1 = "runde Anführungszeichen" Then Selection$ = CStr(Chr(0148)) + Selection$ + CStr(Chr(0147)) If ListVar1 = "Zitatzeichen" Then Selection$ = CStr(Chr(0187)) + Selection$ + CStr(Chr(0171)) SendDragonKeys Selection$ HeardWord "zurückgehen" End Sub
Viel Erfolg! RW
_______________________________________
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.Wilkeeinen markierten Ausdruck automatisch in Zitatzeichen setzen
Hallo Rüdiger,
vielen Dank! Dein Skript funktioniert mit den Zitatzeichen und den runden Klammern ausgezeichnet. Bei den anderen Zeichen bekomme ich keine entsprechenden Ergebnisse. Mir persönlich reichen aber auch die beiden funktionierenden Möglichkeiten.
Schöne Grüße
Hans
DPI 15 auf Windows 10 Professional (64-bit) SpeechMike Premium. Intel i7 Core 4x2.67 GHz, 6 GB RAM
Zitat von R.Wilkeeinen markierten Ausdruck automatisch in Zitatzeichen setzen
Hallo Rüdiger,
vielen Dank! Dein Skript funktioniert mit den Zitatzeichen und den runden Klammern ausgezeichnet. Bei den anderen Zeichen bekomme ich keine entsprechenden Ergebnisse. Mir persönlich reichen aber auch die beiden funktionierenden Möglichkeiten.
Schöne Grüße
Hans
Hallo Hans!
Ich hoffe, Du hast alles gut überstanden ....
Wie schon gesagt, es ist ein altes Skript, und in einer älteren Version funktionierte es auch. Allerdings gehen bei mir immer noch alle Zeichen, mit Ausnahme der eckigen und geschweiften Klammern, wie ich gerade festgestellt habe. Nicht untypisch, weil sie im Zusammenhang mit SendKeys oder ähnlichen Befehlen seit einiger Zeit Probleme bereiten.
Gruß, Rüdiger
_______________________________________
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
Ab Version 11.5 hat Nuance neue Diktierbefehle eingeführt: "leere Anführungszeichen" und "setz das in Anführungszeichen". Erster Befehl schreibt Anführungszeichen an / aus und stellt den Cursor dazwischen, der zweite setzt das Markierte in Anführungszeichen und stellt den Cursor hinter das abschließende Zeichen. Analoges gilt (in Version 12) auch für Anführungsstriche, englische Anführungszeichen/-striche, englische Gänsefüßchen, Klammern. Diese Befehle dürften auch in der Premium gelten.
Bezüglich der Anführungszeichen gilt für Word, das die Formatoptionen von Word berücksichtigt werden und die Anführungszeichen als typografische geschrieben werden (siehe Arbeitsbuch 12).
Nuance hat damit leider nur halbe Arbeit geleistet: für geschweifte / spitze / eckige Klammern gibt es keine Befehle.
Rüdigers Sprachbefehl berücksichtigt nicht, das bei einigen Anwendungen bzw. bei bestimmten Optionen der Befehl "Markier" auch umgebende Leerstellen in die Markierung einbezieht. Die sollen dann aber nicht innerhalb der Klammern/Anführungszeichen..., stehen, sondern außerhalb. Ich habe deshalb eine untenstehende Variante für einen Befehl "setz das in " entwickelt. Für muss natürlich die entsprechende Werteliste gebildet werden. Außerdem wird der Cursor an die Stelle zurückgesetzt, an der er vor dem Markierbefehl stand. Übrigens funktioniert meine Variante auch mit geschweiften und eckigen Klammern.
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 P.Rochauch umgebende Leerstellen in die Markierung einbezieht. Die sollen dann aber nicht innerhalb der Klammern/Anführungszeichen..., stehen, sondern außerhalb.
Perfekt, Pascal! Besten Dank! Jetzt sind keine Wünsche mehr offen Im Skript ist bei den Zitatzeichen das Chr zu viel. Es erzeugt eine Fehlermeldung und muss gelöscht werden. Ich hab noch den Befehl | in | abgeändert in | Auswahl in | Das passt besser zu meiner "Befehlslogik".
Noch einen schönen Sonntag
Hans Löhr
DPI 15 auf Windows 10 Professional (64-bit) SpeechMike Premium. Intel i7 Core 4x2.67 GHz, 6 GB RAM
hat das Skript von Pascal jemand mit Dragon Professional 11.5 unter Windows 8/64 mal testen können?
Es scheint schon bei dem ersten Befehl SendSystemKeys nicht zu funktionieren, da nicht in die Zwischenablage kopiert wird.
Es passiert effektiv nichts, außer dass der Befehl als Befehl erkannt wird.
Hallo Anja,
zum einen muss etwas markiert sein, damit es per Strg+C in die Zwischenablage kopiert wird, zum zweiten gehört zum Skript auch eine passende Werteliste, die per ListVar1 abgefragt wird. Wenn nicht beides erfüllt ist, passiert effektiv auch nichts. Gruß, Pascal
Ich habe natürlich den entsprechenden String markiert.
Die Werteliste ist natürlich gefüllt.
Dennoch habe ich unter Windows 8/64 keinen Erfolg.
Benutzerkontosteuerung ist ausgeschaltet und andere Einschränkungen auch deaktiviert, ich habe Zugriff als Administrator, so dass es daran nicht liegen kann.
Es scheitert leider schon bei "SendSystemKeys "{Ctrl+c}"".
Nur ein Versuch: wie sieht es aus, wenn man "SendSystemKeys" durch das gute alte "SendKeys" ersetzt? Also etwa:
SendKeys "^c"
für "Steuerung + c".
Gruß, RW
_______________________________________
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
Sie berücksichtigt, das die Markierung am Ende /am Anfang Leerzeichen enthält (Markier-Befehl!). Die müssen doch wohl außerhalb der Anführungszeichen/Klammern stehen. Oder?
ZitatHeardWord "zurückgehen"
Wozu wurde diese Zeile eingefügt? Im Testumfeld - Notepad - wurde das Caret an Stellen gesetzt, von denen ich nicht wusste, dass es sie gibt
Setzt den Cursor an die Stelle zurück, wo er vor dem letzten Markierbefehl gestanden hat.
ZitatKann man normalerweise 2 Befehle mit : hintereinander schreiben? Kannte ich noch gar nicht
Kann man. Ich würde mal in die Basic-Sprachbeschreibung schauen (s.o.).
Das Skript ist natürlich nicht der Weisheit letzter Schluss, sondern eher Anregung. So fehlen z.B. Reaktionen auf Ausnahmefälle (leere Markierung, fehlende Listenwert etc.). Aber warum soll ich das "mundgerecht" machen?