如何使用可选参数使my程序打开.exe文件
C++: How to make a my program open a .exe with optional args
我在一个程序上遇到了一些麻烦。我的目标是让它打开几个带有可选参数的.exe文件。例如,如果我想打开一个pdf文件,我可以在cmd窗口中输入下面的字符串。
// If used in a cmd window it will open up my PDF reader and load MyPDF.pdf file
"c:Test spaceSumatraPDF.exe" "c:Test spaceSubMyPDF.pdf"
以下是我使用的两个尝试。第一个打开PDF,但当然不加载文件。第二种方法根本行不通。
// Opens the PDF in my program
system(""C:\Test space\SumatraPDF.exe"");
// Error I get inside of a cmd window is the comment below
// 'C:Test' is not recognized as an internal or external command, operable program or batch file.
//system(""C:\Test space\SumatraPDF.exe" "C:\Test space\Sub\MyPDF.pdf"");
我不确定第二个不工作的原因。这可能是我对系统的一些误解,或者我没有正确使用分隔符。
我觉得有一个库是专门为这个设计的,而不是创建一个使用这么多分隔符的长字符串。
谢谢你的帮助
欢迎使用Stack Overflow!
system方法通过将其参数传递给cmd/c来工作。所以你需要在它周围加上一组额外的引号。参见sled发布的相关问题。
作为系统的替代方案,看看ShellExecute或ShellExecuteEx Win32 API函数。它有更多的功能,虽然它不是便携的。
// ShellExecute needs COM to be initialized
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
SHELLEXECUTEINFO sei = {0};
sei.cbSize = sizeof(sei);
sei.lpFile = prog; // program like c:WindowsSystem32notepad.exe
sei.lpParameters = args; // program arguments like c:tempfoo.txt
sei.nShow = SW_NORMAL; // app should be visible and not maximized or minimized
ShellExecuteEx(&sei); // launch program
CoUninitialize();
更多信息请点击
相关文章:
- 在安卓应用程序中使用.exe文件
- C++程序工作,但 Windows 显示"程序.exe已停止工作"
- CMD:程序.exe 1< "A:/input.txt"产生无输出
- 程序.exe在Cygwin上运行,但在视觉工作室进行调试和运行时给出了例外
- 我的 QT 应用程序.exe无法启动0x00007b
- 如何以编程方式设置应用程序EXE文件的图标
- 当运行程序时,它说程序.exe停止工作
- 获得程序输出(无错误),但程序.exe在使用 graphics.h 时不起作用
- 将程序(.EXE)作为线程 - 窗口C 执行
- 如何确定在C#DotNet中创建安装程序exe的先决条件
- 如何在我的引导程序exe中嵌入MSI
- C++/Win32 最小的可能的消息框("Hello")应用程序exe?
- 视觉C++ 2010 错误。运行时找不到程序.exe
- 如何使用Qt Windows中的设置路径属性从命令行运行应用程序(.exe)时在命令行上打印日志
- 程序给出程序.exe启动后约4秒停止工作
- C++程序.exe从二进制文件读取后已停止工作
- 程序.exe中0x010F2F1C时未处理的异常: 0xC0000005:访问冲突读取位置0xCCCCCCD0
- Cin 执行不起作用 (程序.exe <文件与数据.txt)
- 为我的游戏创建一个安装程序(.exe)
- 错误:无法启动程序"*.exe"系统找不到指定的文件