feat: 模拟器路径适配快捷方式

This commit is contained in:
DLmaster361
2025-04-28 18:35:56 +08:00
parent 34bf5a4fe8
commit 174163e305
4 changed files with 42 additions and 87 deletions

View File

@@ -28,11 +28,12 @@ v4.3
from loguru import logger
from PySide6.QtCore import QObject, Signal, QEventLoop, QFileSystemWatcher, QTimer
import json
from datetime import datetime, timedelta
import subprocess
import shutil
import time
import re
import win32com.client
from datetime import datetime, timedelta
from pathlib import Path
from jinja2 import Environment, FileSystemLoader
from typing import Union, List, Dict
@@ -287,6 +288,41 @@ class MaaManager(QObject):
self.emulator_arguments = set["Configurations"]["Default"][
"Start.EmulatorAddCommand"
].split()
# 如果是快捷方式,进行解析
if (
self.emulator_path.suffix == ".lnk"
and self.emulator_path.exists()
):
try:
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortcut(str(self.emulator_path))
self.emulator_path = Path(shortcut.TargetPath)
self.emulator_arguments = shortcut.Arguments.split()
except Exception as e:
logger.error(
f"{self.name} | 解析快捷方式时出现异常:{e}"
)
self.push_info_bar.emit(
"error",
"解析快捷方式时出现异常",
"请检查快捷方式",
-1,
)
self.if_open_emulator = True
break
elif not self.emulator_path.exists():
logger.error(
f"{self.name} | 模拟器快捷方式不存在:{self.emulator_path}"
)
self.push_info_bar.emit(
"error",
"启动模拟器时出现异常",
"模拟器快捷方式不存在",
-1,
)
self.if_open_emulator = True
break
self.ADB_path = Path(
set["Configurations"]["Default"]["Connect.AdbPath"]
)