tkinterを使用してPrint Spoolerを起動・停止するサンプルスクリプト

2024年6月25日

以下は、tkinterを使用してPrint Spoolerを起動・停止するサンプルスクリプトです。スクリプトを実行するとGUIが表示され、ボタンを押すことでPrint Spoolerの起動・停止が行われます。メッセージボックスも含まれています。

python
import tkinter as tk
from tkinter import messagebox
import win32serviceutil

def start_print_spooler():
    try:
        service_name = 'Spooler'  # Print Spoolerのサービス名
        print("Starting Print Spooler...")
        
        # サービスの起動
        win32serviceutil.StartService(service_name)
        
        print("Print Spooler started successfully.")
        
        # ダイアログボックスの表示
        messagebox.showinfo("Print Spooler Started", "Print Spooler has been started successfully.")
    except Exception as e:
        print(f"Error starting Print Spooler: {e}")
        messagebox.showerror("Error", f"Error starting Print Spooler: {e}")

def stop_print_spooler():
    try:
        service_name = 'Spooler'  # Print Spoolerのサービス名
        print("Stopping Print Spooler...")
        
        # サービスの停止
        win32serviceutil.StopService(service_name)
        
        print("Print Spooler stopped successfully.")
        
        # ダイアログボックスの表示
        messagebox.showinfo("Print Spooler Stopped", "Print Spooler has been stopped successfully.")
    except Exception as e:
        print(f"Error stopping Print Spooler: {e}")
        messagebox.showerror("Error", f"Error stopping Print Spooler: {e}")

if __name__ == "__main__":
    # ウィンドウの作成
    root = tk.Tk()
    root.title("Print Spooler Controller")

    # ラベル
    label = tk.Label(root, text="Print Spooler Controller", font=("Helvetica", 16))
    label.pack(pady=10)

    # ボタン(起動)
    start_button = tk.Button(root, text="Start Print Spooler", command=start_print_spooler)
    start_button.pack(pady=5)

    # ボタン(停止)
    stop_button = tk.Button(root, text="Stop Print Spooler", command=stop_print_spooler)
    stop_button.pack(pady=5)

    # ウィンドウの表示
    root.mainloop()

このスクリプトを実行すると、tkinterを使用したGUIが表示されます。ボタンをクリックすることでPrint Spoolerの起動・停止が行われ、それぞれに成功またはエラーのメッセージボックスが表示されます。

未分類

Posted by ぼっち