从当前目录C ++打开一个exe

时间:2010-08-01 02:57:00

标签: c++ directory

我有python代码......但我怎么用c ++做呢? 我对c ++没有多少经验。我想要的是制作一个将作为自动运行放在CD中的exe。它必须在我的cd中使用xulrunner.exe打开我的cd中的application.ini文件。由于每台计算机的路径都不同,我可以做这样的事情。

import subprocess
import os
path= os.getcwd()
final = path + '/xulrunner.exe ' + path + '/application.ini'
print final
os.system('final')
subprocess.call(['C:\\Temp\\a b c\\Notepad.exe'])

3 个答案:

答案 0 :(得分:1)

我不完全确定我理解你的要求,但你可能想要'系统'功能。这将调用平台的命令处理器来执行给定的命令。

如果您的所有文件(xulrunner.exe和application.ini)与自动运行的可执行文件位于同一目录中,您应该能够依赖正确的工作目录而不需要提供完整路径

例如:

system("xulrunner.exe application.ini");

答案 1 :(得分:1)

这取决于您实现它的平台,但在Windows上(假设从C:\那就是您所在的位置),您需要深入了解Windows API并使用CreateProcess。在Linux上,它将是系统或popen(在那里不是非常熟悉)。

http://msdn.microsoft.com/en-us/library/ms682425%28VS.85%29.aspx

如果已知您正在运行的EXE位于当前工作目录中(无论您的程序是从哪里启动的),您只需使用文件名(“xulrunner.exe”)作为名称即可。使用“。\ xulrunner.exe”可能更安全,但这更偏好。您还可以指定子目录,甚至可以指定SetCurrentDirectory移动到另一个目录。

BOOL startedProgram = CreateProcess("xulrunner.exe", "application.ini", [fill in other options as you need]);

答案 2 :(得分:1)

os.system()system(),在Win32中getcwd()GetCurrentDirectory()

http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx

可能应该坚持使用字符串的char缓冲区。所以,像(未经测试,未经测试)

 #include <stdio.h>

 int main(int ac, char **av) {
    char path[MAX_PATH+1];
    GetCurrentDirectory(MAX_PATH, path);
    char final[MAX_PATH * 2 + 100];
    sprintf(final, "%s /xulrunner.exe %s/application.ini", path, path);
    printf("%s", final);
    system(final);
    // not sure what the notepad call is for, probably another system call
    return 0;
 }
相关问题