Python项目Bug解决 && 陆续更新

一些关于python项目的实际问题和解决办法。

陆续更新中。。。

目录

问题一:MySQL开机自启动失败

Solution 1.

Solution 2.

问题二:使用python操作exe文件,实现 "开机自启动" 功能

Solution 1.

Solution 2.

问题三:待更新。。


问题一:MySQL开机自启动失败

Solution 1.

检查计算机服务中,是否设置MySQL自动启动,并确保MySQL状态为正在运行。

Solution 2.

开机时,可能因为某种原因,MySQL启动的时候较长,从而被系统强制停止。所以需要在注册表中设置《服务启动限制时长》,具体操作步骤如下:

  1. Win + R,并输入regedit,打开 "注册表编译器"
  2. 根据路径 "计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control" 找到Control文件夹
  3. 鼠标右键点击Control,新建 "DWORD(32 位)值(D)"
  4. 名称:ServicesPipeTimeout
  5. 数据:十进制-180000,即180000ms=180s

 参考文章:https://blog.csdn.net/fyyyr/article/details/117435022

问题二:使用python操作exe文件,实现 "开机自启动" 功能

Solution 1.

通过python操控 "注册表编译器" ,直接把exe文件的路径添加到注册表指定文件夹中。

如果手动实现,具体步骤如下:

  1. Win + R,并输入regedit,打开 "注册表编译器"
  2. 根据路径 "计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVer sion\Run" 找到Run文件夹
  3. 鼠标右键点击Run,新建 "字符串值(S)"
  4. 名称:目标exe文件名称,不需要.exe后缀
  5. 数据:目标exe文件的绝对路径

如果使用python实现,代码如下:

import win32api
import win32con

name = 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("添加成功!")

Solution 2.

首先,创建exe文件的快捷方式,然后把快捷方式copy到文件夹中的自启动路径中。快捷方式是为了解决打包程序中的相对路径和绝对路径问题。其中一个重要的细节:快捷方式起始位置的设置,保证 "双击快捷方式的效果" 和 "双击打包文件夹中exe文件的效果" 相同。

 如果手动实现,具体步骤如下:

  1. 打开文件管理器,点击 "查看" ,选中 "隐藏的项目" 前面的ChenkBox
  2. 根据路径 "C:\系统用户路径\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ Startup" 转到自启动文件夹Startup中
  3. 把exe快捷方式复制到Startup文件夹中

如果使用python实现,代码如下:

import os
import winshell
import getpass


def 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 True
    except ImportError as err:
        print("Well, do nothing as 'winshell' lib may not available on current os")
        print("error detail %s" % str(err))
    return False

if __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('添加成功!')

问题三:待更新。。。

>>> 如有疑问,欢迎评论区一起探讨!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flying Bulldog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值