A. Wagner hat neulich eine interessante und wichtige Frage aufgeworfen:
Zitat von "a.wagner"In der neuen Version gibt es jetzt einen Extrapunkt „Diktierquellen verwalten“. Dort kann man aber nur vorhandene Diktierquellen auswählen und neue Diktierquellen hinzufügen.
Bei meiner Spielerei mit der Ablage des Benutzerprofils auf einem „OneDrive“ sind mehr oder weniger versehentlich viele Diktierquellen entstanden und ich möchte nun die eine oder andere löschen. Jetzt habe ich gesucht und keinen Menüpunkt gefunden. Hat jemand eine Idee oder einen Hinweis? Oder warte ich einfach bis 13.5?
Damals habe ich u.a. geantwortet, dass ich vielleicht mal ein Programm dafür schreiben würde. Durch das Thema angeregt, ist mir aufgefallen, dass sich in einem meiner Profile im Laufe der Zeit zu der Hauptquelle noch vier weitere Quellen angesammelt hatten, durch Versuche mit unterschiedlichen Geräten, oder auch nach "Spielereien" verschiedener Art, wobei für jedes Gerät nun eigens Ordner mit umfangreichen Daten angelegt wird. Das Profil war dadurch immerhin auf ca. 2,5 GB angewachsen.
Also habe ich mir vorgenommen, mein Vorhaben umzusetzen, und habe in der Dragon SDK (die auch über Advanced Scripting ausgeführt werden kann) die dafür benötigten Methoden gefunden und ein Skript zum programmatischen Entfernen von Diktierquellen aus dem aktuell geladenen Profil entwickelt, welches ich den hier registrierten Mitgliedern zur Verfügung stellen möchte.
Das Skript führt einen Benutzer-Dialog aus, der für sich selbst sprechen sollte, weswegen ich auf die Funktionsweise nicht näher eingehen möchte. Hinweisen sollte ich nur darauf, dass das Entfernen von Quellen nicht mehr rückgängig gemacht werden kann, so dass man achtsam damit umgehen muss. Deshalb, oder auch generell, sollte man vorher sicherheitshalber ein Backup vom Profil anlegen. Ansonsten habe ich das Skript inzwischen so ca. 30 Mal getestet und keine Fehlfunktionen festgestellt.
Der Code ist - in aller Bescheidenheit - von mittlerem Schwierigkeitsgrad, aber durchgehend kommentiert, zum Nachvollzug, was darin geschieht. Vielleicht dient er auch als Anreiz zum Studium, und wer dazu Fragen hat, möge sich nicht scheuen, sie zu stellen.
' wird benötigt, um INI-Dateien auszulesen Private Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long
' global verwendete Deklarationen Dim eng As New DgnEngineControl Dim ListArray$() ' die Listeneinträge Dim ListIndex() As Integer ' die Listenindices Dim nListHeight As Integer ' die Höhe der Listbox Dim strTitle As String ' Titel der Nachrichtenfenster Dim strRetLoaded As String ' der Name der aktuellen Quelle ' ' stelle die Listeneinträge zusammen ' für jede zusätzliche (= nicht geladene) Quelle ein Listenlement ' der Name der Quelle wird in der Liste angezeigt, der Index gespeichert
...
... alles weitere im angehängten Skript. Viel Spaß damit!
_______________________________________
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
Gratuliere, Rüdiger, da ist Dir mal wieder ein großer Wurf gelungen! Zu ergänzen wäre noch, dass das Skript nur in Version 13 funktioniert (vorherige Versionen kennen die UnpackDictationSourceConstant-Methode nicht), und selbstverständlich braucht es Editionen ab Professional aufwärts. Gruß, Pascal
P.S. Kleine Frage am Rande: Nach der aoptions.ini wird gesucht. Wenn diese nicht gefunden wird, wird angezeigt, dass die options.ini nicht gefunden wurde. Fehlt da ein "a"?
Der Import des Skripte funktionierte prima und es führt die gewünschte Funktion wohl auch aus. Eine Verringerung des Speicherplatzes habe ich noch nicht beobachten können, ich werde aber mal eine Genauigkeitsoptimierung durchführen und danach vielleicht eine Veränderung feststellen.
Gruß
A. Wagner
[Dragon Legal Anywhere mit SpeechMIke LFH 3510, Intel(R) Core(TM)I7-7500 CPU, 16 GB RAM, Windows 10 Pro. 64 Bit [/i]
Vielen Dank für die freundlichen Rückmeldungen allerseits. Da sind noch ein paar Fragen zu beantworten.
Zitat von "Pascal"Zu ergänzen wäre noch, dass das Skript nur in Version 13 funktioniert
Ja, deswegen wird als erstes (in Sub Main) die Version geprüft, und abgebrochen, wenn es nicht 13 ist.
ZitatNach der aoptions.ini wird gesucht. Wenn diese nicht gefunden wird, wird angezeigt, dass die options.ini nicht gefunden wurde. Fehlt da ein "a"?
Wahrscheinlich ein Schreibfehler. Danke für den Hinweis. In Deiner Mail hast Du noch weitere Fragen gestellt. Upgrade-Profile werden verworfen, weil deren Ordner-Struktur von der in einem "Vollversion"-Profil ganz verschieden ist. Und dann gelingt die Suche nach "aoptions.ini" nicht - und vielleicht ist auch die Codierung der Geräte ID verschieden, da sie sich in der Ordner-Struktur wieder findet.
Die Suche nach aoptions.ini hat nur den Zweck, den Klarnamen des Gerätes heraus zu finden, um ihn anzeigen zu können. Du hast mir berichtet, dass bei Dir nicht vollständig angelegte Quellen vorhanden waren, wo keine aoptions.ini enthalten war. Interessant, auch ich hatte halb angelegte Quellen im Profil, aber immer mit aoptions.ini. Es liegt wohl daran, wann die Anlage der Quelle abgebrochen wird. Wenn es sich aber so darstellt, wie Du berichtest, werde ich den Abbruch des Skripts an der Stelle einfach herausnehmen, so dass es dann auch ohne aoptions.ini weiter läuft. (Das bekommst Du bestimmt auch selbst hin.)
ZitatEine Verringerung des Speicherplatzes habe ich noch nicht beobachten können
Merkwürdig, bei mir macht das Entfernen von vier nicht benötigten Quellen einen Unterschied von ca. 500 MB im current Ordner aus. Wenn sich das dann noch bis in den backup Ordner durchsetzt, ist es das Doppelte.
ZitatHast der Community ein schönes Weihnachtsgeschenk gemacht!
Frohe Weihnachten und ein gutes neues Jahr für Dich und das Forum!
Hans
Das war das Ziel dabei. Danke dafür und alles Gute auch meinerseits!
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