编写一个程序,该程序有一个功能,可以设置是否 开机自启动。如果选择了开机自启动功能,则每次系统终端重启的时候,自动执行该程序
时间: 2023-06-08 18:03:36 浏览: 114
一个程序在启动系统的时候自动运行
可以使用 Python 编写一个程序,在程序中使用操作系统的函数来设置开机自启动。具体实现方式可以参考以下代码:
```python
import os
import sys
import shutil
def set_startup(program_path, enable=True):
"""设置程序开机自启动
Args:
program_path (str): 程序的绝对路径
enable (bool): 是否开启开机自启动功能,默认为 True
"""
if os.name == "nt": # windows 操作系统
import winreg
key = winreg.HKEY_CURRENT_USER
sub_key = r"Software\Microsoft\Windows\CurrentVersion\Run"
if enable:
with winreg.OpenKey(key, sub_key, 0, winreg.KEY_ALL_ACCESS) as reg_key:
winreg.SetValueEx(reg_key, "MyProgram", 0, winreg.REG_SZ, program_path)
else:
with winreg.OpenKey(key, sub_key, 0, winreg.KEY_ALL_ACCESS) as reg_key:
winreg.DeleteValue(reg_key, "MyProgram")
elif os.name == "posix": # linux/macOS 操作系统
if enable:
home_dir = os.path.expanduser("~")
src_file = os.path.abspath(sys.argv[0])
dst_file = os.path.join(home_dir, "my_program.py")
shutil.copyfile(src_file, dst_file)
with open(os.path.join(home_dir, ".bashrc"), "a") as f:
f.write("python3 {} &\n".format(dst_file))
else:
os.remove(os.path.join(home_dir, "my_program.py"))
with open(os.path.join(home_dir, ".bashrc"), "r") as f:
lines = f.readlines()
with open(os.path.join(home_dir, ".bashrc"), "w") as f:
for line in lines:
if "my_program.py" not in line:
f.write(line)
```
运行以上代码,即可设置开机自启动功能。使用时只需要调用 `set_startup` 函数即可,例如:
```python
set_startup("/path/to/my_program.py", enable=True)
```
这将在 Windows 操作系统下将 `my_program.py` 设置为开机自启动程序,或者在 Linux/macOS 操作系统下将 `my_program.py` 复制到用户主目录下,并将其添加到 `.bashrc` 文件中,以实现开机自启动功能。
阅读全文