如何使用C ++启动Mozilla Firefox?

时间:2014-07-06 07:54:02

标签: c++ file execution

通过像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?

4 个答案:

答案 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

相关问题