70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
"""
|
|
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() |