Skip to content

Commit

Permalink
launchQQ 删除修补功能,仅作为 log 启动器
Browse files Browse the repository at this point in the history
  • Loading branch information
Mzdyl committed Sep 26, 2024
1 parent 016bf31 commit 87e8e7c
Showing 1 changed file with 0 additions and 72 deletions.
72 changes: 0 additions & 72 deletions LaunchQQ.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
sys.stdout.reconfigure(encoding="utf-8")
subprocess.run("chcp 65001", shell=True)


def get_qq_exe_path():
"""通过文件对话框手动选择 QQ.exe 文件的路径"""
root = tk.Tk()
Expand All @@ -40,72 +39,6 @@ def read_registry_key(hive, subkey, value_name):
print(f"注册表读取失败: {e}")
return None


def get_latest_version(file_path):
"""
获取最新的版本目录。
:param file_path: QQ.exe 的安装目录路径
:return: 最新版本目录名称
:raises FileNotFoundError: 如果无法找到 versions 目录或版本文件夹
"""
versions_dir = os.path.join(file_path, 'versions')
if not os.path.isdir(versions_dir):
raise FileNotFoundError(f"无法找到 versions 目录: {versions_dir}")

# 获取所有版本目录名称
version_names = [d for d in os.listdir(versions_dir) if os.path.isdir(os.path.join(versions_dir, d))]
if not version_names:
raise FileNotFoundError("在 versions 目录下未找到任何版本文件夹")

# 假设版本号格式为 'x.x.x-xxxxx',通过排序选择最新版本
latest_version = sorted(version_names, reverse=True)[0]
print(f"检测到最新版本目录: {latest_version}")

return latest_version


def patch_package_json(file_path, latest_version):
"""
修补 package.json 文件,修改 "main" 字段的值。
:param file_path: QQ.exe 的安装目录路径
:param latest_version: 最新版本目录名称
"""
try:
app_launcher_path = os.path.join(file_path, 'versions', latest_version, 'resources', 'app')
if not os.path.isdir(app_launcher_path):
raise FileNotFoundError(f"无法找到 app_launcher 目录: {app_launcher_path}")

os.chdir(app_launcher_path)
print("开始修补 package.json…")
package_path = os.path.join(app_launcher_path, "package.json")

if not os.path.isfile(package_path):
raise FileNotFoundError(f"package.json 文件不存在: {package_path}")

# 备份原文件
bak_package_path = package_path + ".bak"
shutil.copyfile(package_path, bak_package_path)
print(f"已将旧版文件备份为 {bak_package_path}")

with open(package_path, 'r', encoding='utf-8') as file:
data = json.load(file)

# 修改 "main" 字段的值
original_main = data.get("main", "")
data["main"] = r"./app_launcher/index.js"

# 将修改后的内容写回 package.json 文件
with open(package_path, 'w', encoding='utf-8') as file:
json.dump(data, file, indent=4, ensure_ascii=False)

print(f'"main" 字段已从 "{original_main}" 修改为: "{data["main"]}"')
except Exception as e:
print(f"修补 package.json 时发生错误: {e}")
traceback.print_exc()


def launch_qq(exe_path):
"""
启动 QQ.exe,并附加参数 --enable-logging,同时打印启动过程中的输出内容。
Expand Down Expand Up @@ -141,7 +74,6 @@ def launch_qq(exe_path):
print(f"启动 QQ 失败: {e}")
traceback.print_exc()


def get_qq_path():
try:
hive, subkey, value = winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\QQ", "UninstallString"
Expand All @@ -159,15 +91,11 @@ def get_qq_path():

return qq_exe_path


def main():
try:
qq_exe_path = get_qq_path()
file_path = os.path.dirname(qq_exe_path)

latest_version = get_latest_version(file_path)
patch_package_json(file_path, latest_version)

# 启动 QQ.exe
launch_qq(qq_exe_path)

Expand Down

0 comments on commit 87e8e7c

Please sign in to comment.