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

时间:2022-12-25 08:10:26

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

程序运行环境: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种语句均能打开 中文界面的软件。问题解决。