一些关于python项目的实际问题和解决办法。
陆续更新中。。。
目录
问题一:MySQL开机自启动失败
Solution 1.
Solution 2.
问题二:使用python操作exe文件,实现 "开机自启动" 功能
Solution 1.
Solution 2.
问题三:待更新。。。
检查计算机服务中,是否设置MySQL自动启动,并确保MySQL状态为正在运行。
开机时,可能因为某种原因,MySQL启动的时候较长,从而被系统强制停止。所以需要在注册表中设置《服务启动限制时长》,具体操作步骤如下:
参考文章:https://blog.csdn.net/fyyyr/article/details/117435022
通过python操控 "注册表编译器" ,直接把exe文件的路径添加到注册表指定文件夹中。
如果手动实现,具体步骤如下:
如果使用python实现,代码如下:
import win32api
import win32conname = r'demo' # 要添加的项值名称
path = 'C:\demo.exe' # 获取exe文件的绝对路径
KeyName = 'Software\\Microsoft\\Windows\\CurrentVersion\\Run' # 注册表中自动开启程序的路径# 打开注册表,并跳转到指定的路径
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, KeyName, 0, win32con.KEY_ALL_ACCESS)
# 添加exe文件的结对路径到注册表中
win32api.RegSetValueEx(key, name, 0, win32con.REG_SZ, path)
# 关闭注册表
win32api.RegCloseKey(key)
print("添加成功!")
首先,创建exe文件的快捷方式,然后把快捷方式copy到文件夹中的自启动路径中。快捷方式是为了解决打包程序中的相对路径和绝对路径问题。其中,一个重要的细节:快捷方式起始位置的设置,保证 "双击快捷方式的效果" 和 "双击打包文件夹中exe文件的效果" 相同。
如果手动实现,具体步骤如下:
如果使用python实现,代码如下:
import os
import winshell
import getpassdef create_shortcut(bin_path: str, name: str, desc: str):""":param bin_path: 软件真实exe路径:param name: 快捷方式的路径 + 快捷方式名称:param desc: 描述快捷方式内容:鼠标放在图标上面会有提示:return:"""try:shortcut = name + ".lnk"winshell.CreateShortcut(Path=shortcut,Target=bin_path,Icon=(bin_path, 0),Description=desc)return Trueexcept ImportError as err:print("Well, do nothing as 'winshell' lib may not available on current os")print("error detail %s" % str(err))return Falseif __name__ == '__main__':# ################ 一些路径参数 ################ ## 获取用户名username = getpass.getuser()# 系统盘符名称syspath = os.getenv("SystemDrive")# 不完全的自启动目录exe_path = r"AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"# 自启动目录startupPath = os.path.join(syspath, r"\users", username, exe_path)bin_path = r"C:\demo\demo.exe" # 软件真实exe路径link_path = startupPath + "\\demo" # 快捷方式的路径(创建到桌面路径)+ 快捷方式名称desc = "Flying Bulldog" # 描述快捷方式内容:鼠标放在图标上面会有提示# 桌面快捷方式的起始位置,否则会因为相对路径的存在而报错link_filepath = os.path.join(startupPath, "demo.lnk")# ############################################ ## ########## 将快捷方式添加到自启动目录 ########### #create_shortcut(bin_path, link_path, desc)# 桌面快捷方式的起始位置,否则会因为相对路径的存在而报错with winshell.shortcut(link_filepath) as link:link.working_directory = "C:\demo"# ############################################ #print('添加成功!')
>>> 如有疑问,欢迎评论区一起探讨!
下一篇:第162篇 笔记-安全多方计算