import tkinter as tk
from tkinter import scrolledtext
import subprocess
import os
# 共用函式:執行 diskpart 指令並回傳輸出
def run_diskpart_command(command_text):
script_filename = "temp_diskpart_script.txt"
with open(script_filename, "w") as f:
f.write(command_text + "\n")
try:
result = subprocess.run(
["diskpart", "/s", script_filename],
capture_output=True,
text=True,
shell=True
)
output_text.delete(1.0, tk.END) # 清除舊內容
output_text.insert(tk.END, result.stdout)
if result.stderr:
output_text.insert(tk.END, "\n錯誤訊息:\n" + result.stderr)
except Exception as e:
output_text.insert(tk.END, f"執行發生錯誤:{e}")
finally:
if os.path.exists(script_filename):
os.remove(script_filename)
# 個別指令的按鈕函式
def run_list_vdisk():
run_diskpart_command("list vdisk")
def run_list_volume():
run_diskpart_command("list volume")
# 建立主視窗
window = tk.Tk()
window.title("DiskPart 工具 - List VDisk / List Volume")
window.geometry("900x600")
# 建立按鈕區塊
button_frame = tk.Frame(window)
button_frame.pack(pady=10)
btn_vdisk = tk.Button(button_frame, text="執行 list vdisk", width=20, command=run_list_vdisk)
btn_vdisk.grid(row=0, column=0, padx=10)
btn_volume = tk.Button(button_frame, text="執行 list volume", width=20, command=run_list_volume)
btn_volume.grid(row=0, column=1, padx=10)
# 建立輸出區塊
output_text = scrolledtext.ScrolledText(window, width=110, height=30)
output_text.pack(padx=10, pady=10)
# 啟動主事件迴圈
window.mainloop()