2015-09-17 70 views
-2

我有一个名为MicroSIP的程序。当我双击它时,它会根据.ini文件打开并注册到远程服务器。目前为止一切都很好。 我有一个python脚本,我想关闭MicroSIP.exe的进程并再次运行它。我可以这样做,但出于某种原因,当它再次打开时,就像它不会像使用双击时那样使用.ini文件。使用python执行程序

有谁知道为什么会发生?

这是我关闭进程并再次运行代码:

os.system("TASKKILL /F /IM MicroSIP.exe") 
os.system('"C:\Users\Tamir\Downloads\MicroSIP-Lite-3.10.5\MicroSIP.exe"') 
+2

取决于你如何实际再次“打开”它。请显示你的代码。 – J0HN

+0

@ J0HN我编辑了这个问题 – tamird14

回答

4

它实际上是工作目录的问题。在您的Python脚本中,确保包含exe的目录成为主目录,然后执行exe。

+2

你能解释一下吗你是什么意思?我不明白 – tamird14

+2

MicroSIP显然在工作目录中查找它的INI文件。这意味着你的python进程在调用os.system到exec microsip之前需要cd到那个目录。为此,使用os.chdir()。 – jarmod

2

您可以检查你的脚本工作目录是这样的:

import os 
print os.getcwd() 

为了确保其工作在不同的目录比您的.exe程序

一个非常简单的解决方法:

os.system("TASKKILL /F /IM MicroSIP.exe") 
os.chdir('"C:\Users\Tamir\Downloads\MicroSIP-Lite-3.10.5\"')  
os.system('"C:\Users\Tamir\Downloads\MicroSIP-Lite-3.10.5\MicroSIP.exe"') 

要了解更多,更好,我建议您阅读this question