通过像Code :: Blocks这样的编译器进行编译,我尝试了以下内容,它不起作用:
/*Running Firefox.exe*/
#include <stdio.h>
/*using c++*/
#include <iostream>
#include <stdlib.h>
using namespace std;
int main ()
{
int x;
cout << "Checking if processor is available..." << endl;
/*System used here*/
if (system(NULL)) puts ("Proceed");
else exit (1);
cout<< "Executing Firefox..." << endl;
/*Having some error here saying not recognized as internal or external command*/
x = system ("C:/Program Files (x86)/Mozilla Firefox/firefox.exe");
/*cout here*/
cout <<"The value returned was:" << x << endl;
return 0;
}
是不是因为Firefox不被认可为Windows系统?如果是这样,我如何从代码运行Firefox,甚至Internet Explorer?
答案 0 :(得分:2)
我相信你需要将路径转换为DOS格式
启动命令提示符cd进入Mozilla Firefox文件夹
运行此: for %I in (.) do echo %~sI
将输出复制到system
命令,\
替换为\\
追加firefox.exe
的结尾
答案 1 :(得分:2)
是因为Firefox不被识别为Windows系统吗?
如果您打开cmd.exe
并输入C:/Program Files...
,它将无效,因为空格用作分隔符。引用你的路径:
system("\"C:/Program Files (x86)/Mozilla Firefox/firefox.exe\"");
虽然如果你的目标是Windows,你应该考虑使用CreateProcess
,这样可以省去这个麻烦。
如果是这样,我如何从代码运行Firefox,甚至是Internet Explorer?
如果要显示网页,请使用ShellExecute
*并让shell执行此操作。它将负责启动Firefox,Internet Explorer,Chrome或用户配置为查看网页的任何浏览器。
*首先阅读关于初始化COM的备注部分。
答案 2 :(得分:2)
运行cmd.exe(Windows命令shell)并在命令行输入字符串C:/Program Files (x86)/Mozilla Firefox/firefox.exe
,您将看到同样的问题 - 即问题在于您的命令字符串而不是您的C ++代码。
路径中的空格需要引用命令字符串:
system ("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\"") ;
或
system ("\"C:/Program Files (x86)/Mozilla Firefox/firefox.exe\"") ;
答案 3 :(得分:0)
尝试使用Windows API CreateProcess API