Tôi hiện đang phát triển một ứng dụng nhỏ nhưng cơ bản sử dụng tkinter để chạy trên Windows boot của mình để tôi có thể có một menu nhỏ cho những thứ khác nhau mà tôi muốn mở. Ví dụ: tôi hiện có các nút để khởi chạy một số trò chơi tôi chơi cũng như các nút để khởi chạy Skype, Steam, v.v. Nhưng tôi cũng đã thêm các nút vào menu để tắt, khởi động lại và đặt máy tính ở chế độ ngủ. Mã của tôi cho đến nay khá cơ bản, nhưng nó vẫn ở đây:
từ nhập Tkinter *
nhập os, sys, quy trình con
thắng=Tk()
b1 = Nút(win, text = "SKYPE")
b2 = Nút(win, text = "STEAM", command = lambda: os.startfile("C:\Program Files (x86)\Steam\Steam.exe"))
b3 = Nút(win, text = "GOOGLE")
b4 = Nút(thắng, text = "CS:GO")
b5 = Nút(thắng, text = "RUST")
b6 = Nút(thắng, text = "PPIRACY")
b7 = Nút(thắng, text = "TERRARIA")
b8 = Nút(win, text = "SHUTDOWN", command = lambda: subprocess.call(["shutdown.exe", "-f", "-s", "-t", "0"]))
b9 = Button(win, text = "SLEEP", command = lambda: subprocess.call(["sleep.exe", "-f", "-s", "-t", "0"]))
b10 = Button(win, text = "REStart", command = lambda: subprocess.call(["restart.exe", "-f", "-s", "-t", "0"]))
l = Nhãn(win, text = "Ứng dụng")
k = Nhãn(thắng, text = "Trò chơi")
j = Nhãn(win, text = "Misc")
l.grid(hàng = 0, cột = 0, padx = 10, pady = 10)
k.grid(hàng = 0, cột = 1, padx = 10, pady = 10)
j.grid(hàng = 0, cột = 2, padx = 10, pady = 10)
b1.grid(hàng = 1, cột = 0, padx = 10, pady = 10)
b2.grid(hàng = 2, cột = 0, padx = 10, pady = 10)
b3.grid(hàng = 3, cột = 0, padx = 10, pady = 10)
b4.grid(hàng = 1, cột = 1, padx = 10, pady = 10)
b5.grid(hàng = 2, cột = 1, padx = 10, pady = 10)
b6.grid(hàng = 3, cột = 1, padx = 10, pady = 10)
b7.grid(hàng = 4, cột = 1, padx = 10, pady = 10)
b8.grid(hàng = 1, cột = 2, padx = 10, pady = 10)
b9.grid(hàng = 2, cột = 2, padx = 10, pady = 10)
b10.grid(hàng = 3, cột = 2, padx = 10, pady = 10)
vòng lặp chính()
Như bạn có thể thấy, các nút 8, 9 và 10 của tôi đều được sử dụng để làm ba việc này. Quá trình tắt máy hoạt động tốt nên tôi nghĩ có lẽ chúng ta hãy thử lệnh tương tự nhưng sử dụng sleep.exe hoặc restart.exe (tôi muốn thử điều đó) nhưng có vẻ như tôi đã gặp lỗi
Ngoại lệ trong cuộc gọi lại Tkinter
Traceback (most recent call last):
Tệp "C:\Python27\lib\lib-tk\Tkinter.py", dòng 1470, trong __call__
trả về self.func(*args)
Tệp "C:\Users\NAME\Desktop\test.py", dòng 17, trong
b10 = Button(win, text = "REStart", command = lambda: subprocess.call(["restart.exe", "-f", "-s", "-t", "0"]))
Tệp "C:\Python27\lib\subprocess.py", dòng 522, trong cuộc gọi
return Popen(*popenargs, **kwargs).wait()
Tệp "C:\Python27\lib\subprocess.py", dòng 709, trong __init__
errread, errwrite)
Tệp "C:\Python27\lib\subprocess.py", dòng 957, trong _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Sau đó ngủ lại như cũ, nhưng rõ ràng là để làm cho hệ thống ngủ.
Nếu điều này không hiệu quả, làm cách nào để tắt, ngủ và khởi động lại? Tôi hiện đang dùng Windows 8.1 (nếu điều đó quan trọng). Cảm ơn sự giúp đỡ của bạn.
Tôi là một lập trình viên xuất sắc, rất giỏi!