Ich fand die Lösung in dem Beitrag von FortiSecond eAU-Reparatur Nummer 2 aus dem Jahre 2022. Eines der Probleme von Turbomed ist die grottenschlechte Schnittstellenprogrammierung der TI-Funktionalitäten über Java. Stürzt TM ab, bleibt der verweiste Rest der Java-Applikation (meist) hängen und kann bei einem Neustart nicht wieder sauber aufgerufen werden. Die Tipps der freundlichen Callcenter-Mitarbeiter von TM: nach Programmstart den User wieder abmelden und neu anmelden, etc. helfen leider auch nur bedingt.
Ich habe den Programmcode von FortiSecond genommen und nur ein wenig aufgepimpt. Die Batchdatei löscht die verwaisten Java-Programme und startet ggf. TM neu. Sie muss NICHT, wie in dem Beitrag beschrieben, im Administratormodus aufgerufen werden.
Da ich gerne über die Taskleiste meine Programme aufrufe habe ich noch folgende Anpassungen vorgenommen (siehe auch Ordner an die Taskleiste anheften).
- Link von der Batch-Datei (z.B. auf dem Desktop) anlegen
- mit Rechts-Klick auf den Link auf Eigenschaften gehen
- in "Ziel" vor den Programmpfad "explorer.exe" einfügen und den gesamten Programmpfad in Anführungszeichen setzen ("").
- (optional) Programmicon ändern (ich habe das schöne alte von c:\TurboMed\Programm\TSConfig.exe genommen)
- per Rechts-Klick "An Taskleiste anheften"
- Fertig!
Hier nun der Code. Prosit (möge es nützen)!
Code: Alles auswählen
:: rm 24.02.24
:: OS-Abfrage optimiert
:: Variablen umbenannt x -> TmInst, TmPfad -> TmLW
:: plugpath korrigiert
:: Ausgabe korrigiert
:: Pausen gelöscht
:: Turbomed-Autostart eingefügt (optional)
@echo off
::Auslesen der Windowsversion
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT
if %OS%==32BIT (
@for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\TurboMed EDV GmbH\TURBOMED\Current" /v Path') do @Set "TmInst=%%~j"
echo Win32
) else (
@for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TurboMed EDV GmbH\TURBOMED\Current" /v Path') do @Set "TMInst=%%~j"
echo Win64
)
echo TurboMed Installation: %TmInst%
set TmLW=%TmInst:~0,2%
echo TM Laufwerk: %TmLW%
echo Die Variable wurden aus der Registry ausgelesen
echo %TmLW% als Variable TmLW gesetzt
set plugpath=%TmInst%Programm\communicator\plugins\
echo PlugPath=%plugpath% gesetzt
:: Pause
wmic process where ExecutablePath='%TmLW%\\TurboMed\\Programm\\communicator\\jre\\bin\\javaw.exe' delete
:: pause
del /s /q %plugpath%AeND
del /s /q %plugpath%ArminPlugin
del /s /q %plugpath%CgmAssist
del /s /q %plugpath%Clickdoc
del /s /q %plugpath%Connectdiagnostic
del /s /q %plugpath%CubePlugin
del /s /q %plugpath%DaleUV
del /s /q %plugpath%DaleUVCommunication
del /s /q %plugpath%DigaStore
del /s /q %plugpath%eInvoice
del /s /q %plugpath%EPrescription
del /s /q %plugpath%EVaccinationCertificateService
del /s /q %plugpath%IdentityProvider
del /s /q %plugpath%JesajaNetPlugin
del /s /q %plugpath%KomLePlugin
del /s /q %plugpath%KvCommunicationsPlugin
del /s /q %plugpath%MedDataPlugin
del /s /q %plugpath%Privadis
del /s /q %plugpath%ReadinessCheck
del /s /q %plugpath%SaniQPlugin
del /s /q %plugpath%SecureFileTransfer
del /s /q %plugpath%SecureMailClient
del /s /q %plugpath%SimpleFileTransfer
del /s /q %plugpath%SmartUpdate
del /s /q %plugpath%TelematikPlugin
del /s /q %plugpath%vitaphone
del /s /q %plugpath%WebService
:: pause
set Programm=TurboMed
tasklist |find /i "%Programm%" >nul
if %errorlevel% == 0 (
echo Das Programm "%Programm%" laeuft gerade!
) else (
echo Das Programm "%Programm%" laeuft gerade nicht!
start %TMInst%Programm\TurboMed.exe
)
:: pause
:: ********************************************************************************************************