add Regestriy Set for Values
This commit is contained in:
+101
@@ -0,0 +1,101 @@
|
||||
import customtkinter as ctk
|
||||
import winreg
|
||||
import subprocess
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Registry-Pfad definieren
|
||||
REG_PATH = r"Software\PDFExporter"
|
||||
|
||||
def read_registry_value(name):
|
||||
try:
|
||||
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, REG_PATH, 0, winreg.KEY_READ)
|
||||
value, _ = winreg.QueryValueEx(key, name)
|
||||
winreg.CloseKey(key)
|
||||
return value
|
||||
except FileNotFoundError:
|
||||
return None
|
||||
|
||||
def write_registry_value(name, value):
|
||||
try:
|
||||
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, REG_PATH)
|
||||
winreg.SetValueEx(key, name, 0, winreg.REG_SZ, value)
|
||||
winreg.CloseKey(key)
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Schreiben in Registry: {e}")
|
||||
|
||||
# def config_exists():
|
||||
# return read_registry_value("APIKey") is not None
|
||||
|
||||
def save_config_and_close(api_entry, server_entry, label_entry, order_entry, app):
|
||||
write_registry_value("APIKey", api_entry.get())
|
||||
write_registry_value("Server", server_entry.get())
|
||||
write_registry_value("LabelPrinter", label_entry.get())
|
||||
write_registry_value("OrderPrinter", order_entry.get())
|
||||
app.destroy()
|
||||
|
||||
def show_config_gui():
|
||||
ctk.set_appearance_mode("System")
|
||||
ctk.set_default_color_theme("blue")
|
||||
|
||||
app = ctk.CTk()
|
||||
app.title("Erstkonfiguration")
|
||||
window_width = 400
|
||||
window_height = 400
|
||||
|
||||
# Bildschirmgröße ermitteln
|
||||
screen_width = app.winfo_screenwidth()
|
||||
screen_height = app.winfo_screenheight()
|
||||
|
||||
# Position zum Zentrieren berechnen
|
||||
x = int((screen_width / 2) - (window_width / 2))
|
||||
y = int((screen_height / 2) - (window_height / 2))
|
||||
|
||||
app.geometry(f"{window_width}x{window_height}+{x}+{y}")
|
||||
|
||||
frame = ctk.CTkFrame(master=app)
|
||||
frame.pack(pady=20, padx=20, fill="both", expand=True)
|
||||
|
||||
# Vorhandene Werte aus der Registry lesen
|
||||
existing_api = read_registry_value("APIKey") or ""
|
||||
existing_server = read_registry_value("Server") or ""
|
||||
existing_label = read_registry_value("LabelPrinter") or ""
|
||||
existing_order = read_registry_value("OrderPrinter") or ""
|
||||
|
||||
api_label = ctk.CTkLabel(master=frame, text="API Key:")
|
||||
api_label.pack(pady=5)
|
||||
api_entry = ctk.CTkEntry(master=frame, width=300)
|
||||
api_entry.insert(0, existing_api)
|
||||
api_entry.pack()
|
||||
|
||||
server_label = ctk.CTkLabel(master=frame, text="Server:")
|
||||
server_label.pack(pady=5)
|
||||
server_entry = ctk.CTkEntry(master=frame, width=300)
|
||||
server_entry.insert(0, existing_server)
|
||||
server_entry.pack()
|
||||
|
||||
label_label = ctk.CTkLabel(master=frame, text="Label-Drucker:")
|
||||
label_label.pack(pady=5)
|
||||
label_entry = ctk.CTkEntry(master=frame, width=300)
|
||||
label_entry.insert(0, existing_label)
|
||||
label_entry.pack()
|
||||
|
||||
order_label = ctk.CTkLabel(master=frame, text="Order-Drucker:")
|
||||
order_label.pack(pady=5)
|
||||
order_entry = ctk.CTkEntry(master=frame, width=300)
|
||||
order_entry.insert(0, existing_order)
|
||||
order_entry.pack()
|
||||
|
||||
save_button = ctk.CTkButton(master=frame, text="Speichern", command=lambda: save_config_and_close(
|
||||
api_entry, server_entry, label_entry, order_entry, app))
|
||||
save_button.pack(pady=15)
|
||||
|
||||
app.mainloop()
|
||||
|
||||
def start_gui_app():
|
||||
# gui.py im gleichen Verzeichnis starten
|
||||
script_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "gui.py")
|
||||
subprocess.Popen([sys.executable, script_path])
|
||||
|
||||
|
||||
show_config_gui()
|
||||
Reference in New Issue
Block a user