实现Windows自动关机的Python程序及打包指南:
---
### Python自动关机程序代码
```python
import os
import datetime
from datetime import datetime, timedelta
def main():
print("Windows 自动关机程序")
print("请选择关机方式:")
print("1. 多少分钟后关机")
print("2. 指定具体时间(如23:00)")
# 输入选项验证
while True:
option = input("请输入选项(1或2):").strip()
if option in ('1', '2'):
break
print("无效选项,请重新输入")
# 根据选项处理输入
if option == '1':
# 输入分钟数验证
while True:
try:
minutes = int(input("请输入关机前的等待分钟数:"))
if minutes <= 0:
print("分钟数必须大于0")
continue
seconds = minutes * 60
break
except ValueError:
print("请输入有效的整数分钟数")
else:
# 输入时间验证
while True:
target_time = input("请输入关机时间(格式HH:MM,例如23:00):").strip()
try:
now = datetime.now()
target = datetime.strptime(target_time, "%H:%M")
target = target.replace(year=now.year, month=now.month, day=now.day)
# 处理跨天情况
if target < now:
target += timedelta(days=1)
delta = target - now
seconds = delta.total_seconds()
break
except ValueError:
print("时间格式错误,请重新输入")
# 执行关机命令
os.system(f"shutdown /s /t {int(seconds)}")
print(f"计算机将在 {seconds} 秒后关机。要取消关机,请运行命令:shutdown /a")
if __name__ == "__main__":
main()
```
---
### 使用VS Code打包为可执行程序(EXE)
#### 步骤 1:安装PyInstaller
1. 打开VS Code,按下 `Ctrl + ~` 打开终端。
2. 输入以下命令安装打包工具:
```bash
pip install pyinstaller
```
#### 步骤 2:打包程序
1. 将上述代码保存为 `auto_shutdown.py`。
2. 在终端中运行以下命令生成单文件EXE:
```bash
pyinstaller --onefile auto_shutdown.py
```
#### 步骤 3:获取可执行文件
1. 打包完成后,在项目目录下会生成 `dist` 文件夹。
2. 打开 `dist` 文件夹,找到 `auto_shutdown.exe` 文件。
---
### 注意事项
1. **杀毒软件拦截**:某些杀毒软件可能会误报EXE文件,请将文件添加到信任列表。
2. **管理员权限**:如果遇到权限问题,右键选择“以管理员身份运行”EXE文件。
3. **取消关机**:如需取消关机计划,在命令提示符输入 `shutdown /a`。
---
### 程序使用示例
```
Windows 自动关机程序
请选择关机方式:
1. 多少分钟后关机
2. 指定具体时间(如23:00)
请输入选项(1或2):2
请输入关机时间(格式HH:MM,例如23:00):23:30
计算机将在 3600 秒后关机。要取消关机,请运行命令:shutdown /a
```