用代码打开软件 和 手动双击打开软件,软件显示不一致问题解决

具体问题:手动双击软件图标,软件界面显示为原先设置好的中文,而用代码实现启动软件时,软件界面显示为英文。

程序运行环境:Python3

1 autoit.run(r'D:AccessPortaccessport.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:AccessPortaccessport.exe并回车,软件打开显示界面依然为英文

之后尝试切换路径到D:AccessPort,再执行D:AccessPortaccessport.exe,软件打开显示界面为正常的中文。

至此,得出问题解决方案,执行目录必须为exe文件所在目录。

# 代码做出处理
current_dir = os.getcwd()
os.chdir("D:\AccessPort")  # 更改工作目录为软件所在文件夹
os.startfile("D:\AccessPort\accessport.exe")  # 打开软件执行语句
os.chdir(current_dir)  # 避免后续代码运行出现问题,把目录更改回来

经验证,更改工作目录后,之前的5种语句均能打开 中文界面的软件。问题解决。

原文地址:https://www.cnblogs.com/congyinew/p/10416824.html