我如何以编程方式找到iexplorer .exe的位置
How can I find programatically where iexplore.exe is?
我需要运行myApp.exe,然后启动iexplorer .exe。什么是最强大的,通用的方法(操作系统位版本无关)做到这一点?
你能告诉我正确的注册表项/env var/其他方法吗?
谢谢,家伙
对于较新版本的Internet Explorer,您可以查看密钥HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerCapabilitiesApplicationDescription。
话虽如此,最向后和向前兼容的方式将是查看以下路径(按此顺序):
在注册表中:HKEY_CLASSES_ROOTIE.AssocFile.HTMshellopencommand% ProgramFiles (x86) % Internet Explorer iexplore.exe% ProgramFiles % Internet Explorer iexplore.exe
请注意,64位Windows版本可能有两个不同的IE版本:32位和64位。至少就目前的情况(IE9)而言,你通常会想使用32位版本,因为它优化得更好,并且具有更好的插件/ActiveX兼容性。
#include <stdlib.h>
int main() {
system("iexplore.exe");
return 0;
}
在我尝试过的任何版本的windows中…如果您点击运行,然后键入iexplorer .exe, Internet Explorer将运行。
读取注册表项HKEY_CLASSES_ROOTCLSID{0002DF01-0000-0000-C000-000000000046}LocalServer32
的标准值
这是IE COM服务器注册。
另一种选择:
CSettingsStore store(TRUE, TRUE);
if (store.Open(_T("Software\Clients\StartMenuInternet\IEXPLORE.EXE\shell\open\command")))
{
CString strIEPath = _T("");
store.Read(_T(""), strIEPath);
store.Close();
if(PathFileExists(strIEPath))
{
// Do whatever
}
}
您也可以将密钥更改为:
store.Open(_T("SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE")
正确的方法是使用%PATH%
,因为它不受预加载攻击。
SetSearchPathMode(BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE);
WCHAR buf[MAX_PATH];
SearchPath(NULL, "iexplore.exe", NULL, MAX_PATH, buf, NULL);
可以查看PATH
环境变量的文件夹。也在文件夹%SYSTEMDRIVE%PROGRA~1INTERN~1
和%SYSTEMDRIVE%PROGRA~2INTERN~1
。
- 你可以有你自己的羡慕变量(比如IE_HOME)。并要求程序的客户端将其设置为IE可执行文件的路径,并且只使用该环境变量的值。
除非我弄错了,否则当前版本的IE总是安装在"Program FilesInternetExplorer"下
string strIEPath;
char cDirectory[MAX_PATH];
if(SHGetSpecialFolderPathA(NULL,cDirectory,CSIDL_PROGRAM_FILES,false))
{
strIEPath = cDirectory;
strIEPath.append("\InternetExplorer\iexplorer.exe");
}
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 终端不会为C++文件创建.exe文件吗
- 在Windows中以.exe的形式运行c++
- Visual Studio mkl_link_tool.exe链接错误
- PrintWindow函数在notepad.exe中出错
- VSCode C++ 编译的exe感染了Win32:TrojanX-gen[Trj]
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- 获取当前正在运行的 exe 名称(不是路径)
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 1d.exe找不到SFML文件?
- VI工作室代码错误无法打开输出文件主.exe
- 如何为每个客户生成自定义 exe
- 使用参数在 C# 的C++上运行.exe
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 如何在Visual Studio Code中重命名我的a.exe文件?
- 解析引用 |exe/dll vs lib
- Q没有管理权限的 exe 无法启动维护工具
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- Eclipse 没有在 Windows (C++) 中编译.exe
- 我如何以编程方式找到iexplorer .exe的位置