""" Haupteinstiegspunkt für den Anwendungs-Launcher. Dieses Skript sollte im Hauptverzeichnis (C:/Development/Emirat) abgelegt werden. """ import os import sys import logging from datetime import datetime # Logging einrichten log_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "logs") os.makedirs(log_dir, exist_ok=True) logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler( os.path.join(log_dir, f'launcher_{datetime.now().strftime("%Y%m%d")}.log') ), logging.StreamHandler(sys.stdout) ] ) logger = logging.getLogger(__name__) def main(): """ Hauptfunktion zum Starten des Launchers. """ try: logger.info("Starte Emirat Software Launcher") # Launcher-Verzeichnis zum Python-Pfad hinzufügen launcher_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "Launcher") if launcher_dir not in sys.path: sys.path.insert(0, launcher_dir) # Importiere und starte den Launcher from Launcher.app_launcher import ApplicationLauncher app = ApplicationLauncher() app.mainloop() logger.info("Launcher beendet") except Exception as e: logger.error(f"Fehler beim Starten des Launchers: {str(e)}", exc_info=True) # Bei Fehlern im Grafikmodus einen Dialog anzeigen try: import tkinter as tk from tkinter import messagebox root = tk.Tk() root.withdraw() # Verstecke das Hauptfenster messagebox.showerror( "Launcher-Fehler", f"Der Launcher konnte nicht gestartet werden:\n\n{str(e)}\n\n" f"Details wurden in die Logdatei geschrieben:\n{os.path.join(log_dir, 'launcher_*.log')}" ) except: # Fallback, wenn selbst der Fehlerdialog nicht angezeigt werden kann print(f"KRITISCHER FEHLER: Der Launcher konnte nicht gestartet werden: {str(e)}") print(f"Details wurden in die Logdatei geschrieben: {os.path.join(log_dir, 'launcher_*.log')}") input("Drücken Sie Enter, um fortzufahren...") if __name__ == "__main__": main()