c++ - System() 函数,并从中调用 Internet Explorer,Dev C++

标签 c++ dev-c++ mingw32

我尝试制作一个程序来获取网站信息,然后将其提供给 system() 以启动网站。我知道像 (\, ",') 这样的字符不会直接输入输出,所以我使用了转义序列。

我写了这个程序,但命令提示符只是拒绝通过 C:\ 路径。但是如果我复制粘贴程序显示的命令,Internet Explorer 就会启动。但我的程序并非如此。谁能告诉我哪里出错了?

这是我的代码:

#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{

    cout<<"Please enter the website you wish to visit: ";
    string website,web;
    cin>>web;
    web= " " + web;
    website = "\"%ProgramFiles%\\Internet Explorer\\iexplore\""+web;
    cout<<"\n"<<website<<endl<<endl<<endl;
    system(website.c_str());
    return 0;
}

最佳答案

您正在您的系统命令行中使用环境变量%ProgramFiles%;这些特定于 MS-DOS 提示环境,通常在 system 实现中不可用。

我建议用完整路径替换它,例如\"C:\Program Files\Internet Explorer\iexplore\",看看是否可行。

如果可行,那么您的实现不会像完整的命令提示符那样隐式替换环境变量,因此您需要单独查询环境变量并在运行 system 之前构建路径.参见 getenv一种可能的方式(我不确定 mingw32 支持什么,所以您可能还有其他选择)。

如果这不能解决问题,我建议检查您是否可以启动更简单的程序,例如 notepad.exe,以验证没有任何东西干扰启动应用程序,例如您的环境路径或权限。

关于c++ - System() 函数,并从中调用 Internet Explorer,Dev C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35836828/

相关文章:

debugging - 如何在Linux上正确调试交叉编译的Windows代码?

c++ - C++ Lambda 的内存布局

c++ - 添加数组特定列的元素

C++网页开发

c++ - Windows 7 中 C 套接字编程的 IDE

使用 Dev-C++ 和 SDL 的 OpenGL v2.0 着色器?

c - 在 dev c++ 中运行这段 C 时出错 - "Syntax error before * token"

c++ - 使用mingw构建库时如何生成pdb文件?

linux - 如何在 Ubuntu 上安装 mingw32?

c++ - 将结构的地址分配给另一个结构的指针