具体问题:手动双击软件图标,软件界面显示为原先设置好的中文,而用代码实现启动软件时,软件界面显示为英文。
程序运行环境:Python3
1 autoit.run(r'D:\AccessPort\accessport.exe') # 调用autoit3的API 2 3 os.startfile("D:\\AccessPort\\accessport.exe") # os模块中的startfile() 4 5 os.system(r'"D:\\AccessPort\\accessport.exe"') 6 7 win32api.ShellExecute(0, 'open', 'D:\\AccessPort\\accessport.exe', '', '', 1) 8 9 handle = win32process.CreateProcess('D:\\AccessPort\\accessport.exe', '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO())
使用这5种语句,出现一样的问题
打开命令行终端,直接输入D:\AccessPort\accessport.exe并回车,软件打开显示界面依然为英文
之后尝试切换路径到D:\AccessPort,再执行D:\AccessPort\accessport.exe,软件打开显示界面为正常的中文。
至此,得出问题解决方案,执行目录必须为exe文件所在目录。
# 代码做出处理 current_dir = os.getcwd() os.chdir("D:\\AccessPort") # 更改工作目录为软件所在文件夹 os.startfile("D:\\AccessPort\\accessport.exe") # 打开软件执行语句 os.chdir(current_dir) # 避免后续代码运行出现问题,把目录更改回来
经验证,更改工作目录后,之前的5种语句均能打开 中文界面的软件。问题解决。