写注册表,把协议和程序路径写入注册表
void CTestDlg::RegIEProtocol(CString strProName,CString strPath)
{
HKEY hSubKey;
DWORD lpdw;
RegCreateKeyEx(HKEY_CLASSES_ROOT,strProName.GetBuffer(0),0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&hSubKey,&lpdw);//REG_OPTION_NON_VOLATILE:保存,重启还在;REG_OPTION_VOLATILE:不保存,重启不在。
CString strPname = strProName + "Protocol";
RegSetValueEx(hSubKey,"",0,REG_SZ,(LPBYTE)strPname.GetBuffer(0),strPname.GetLength());
RegSetValueEx(hSubKey,"URL Protocol",0,REG_SZ,(LPBYTE)strPath.GetBuffer(0),strPath.GetLength());
HKEY iconKey;
CString strIconStr = strPath + ",1";
RegCreateKeyEx(hSubKey,"DefaultIcon",0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&iconKey,&lpdw);
RegSetValueEx(iconKey,"",0,REG_SZ,(LPBYTE)strIconStr.GetBuffer(0),strIconStr.GetLength());
RegCloseKey(iconKey);
HKEY shellKey;
RegCreateKeyEx(hSubKey,"shell",0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&shellKey,&lpdw);
HKEY openKey;
RegCreateKeyEx(shellKey,"open",0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&openKey,&lpdw);
HKEY commandKey;
RegCreateKeyEx(openKey,"command",0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&commandKey,&lpdw);
CString str = "\"" + strPath + "\" \"%1\"";
RegSetValueEx(commandKey,"",0,REG_SZ,(LPBYTE)str.GetBuffer(0),str.GetLength());
RegCloseKey(hSubKey);
}
调用:
RegIEProtocol("test","D:\\work\\temp\\activctest\\ocxApp\\TSTCON32.EXE");
IE地址栏中输入:test://
即可启动TSTCON32.EXE
分享到:
相关推荐
如果你的应用程序是在Node.js环境中运行,可以使用`child_process`模块中的`spawn`或`execFile`方法来启动外部程序并传递参数。例如: ```javascript const { spawn } = require('child_process'); const exe = ...
自定义协议可以作为一个触发器,使得用户在IE中点击特定链接时,能够自动启动更新程序或者直接运行已更新的版本。 “非插件方式”意味着这种方法不涉及在浏览器内安装额外的组件,减少了对浏览器安全性和性能的影响...
这段代码在IE中运行,会尝试启动指定路径下的QQ程序。在非IE浏览器中,可能需要寻找其他替代方案,如使用浏览器插件或现代Web API(如Web App Manifest和Service Worker,但这通常只适用于现代浏览器)。 四、现代...
利用Delphi编写IE扩展 在自己的程序中使用过WebBrowser控件的朋友都知道,WebBrowser控件定义了诸如BeforeNavigate、DownloadComplete 等事件,我们可以通过编写事件处理代码实现对WebBrowser控件的操作。那么如何...
然而,这种方法只适用于在IE中运行的JavaScript,且不适用于其他浏览器。 2. **ShellExecute API**:如果要在JavaScript中启动非IE浏览器,可以借助于浏览器扩展或Web Workers等技术,通过执行系统命令来调用其他...
用delphi开发的,针对IE5、6、7的脚本扩展程序,不仅仅能扩展主文档,也能对iframe内文档进行扩展,解决访问指定文档内容的需求
在Web开发中,iframe是一种常用来嵌入第三方页面或内容的方式。但同时,它也引入了父页面与iframe之间进行数据交换的需求,也就是所谓的“传值传参”。随着浏览器技术的发展,不同浏览器间的兼容性问题成为开发者...
1. 打开IE浏览器:首先,我们需要启动Internet Explorer浏览器,这通常是通过双击桌面快捷方式或者在“开始”菜单中找到IE图标来完成的。 2. 访问目标网页:在地址栏输入想要查看源代码的网页URL,然后按回车键,...
trixie IE扩展插件 IE插件 开发扩展自己的ie的插件 类是google浏览器的插件
4. **16轴控制**:在本案例中,通过CC-LINK IE协议,FX5U PLC能够同时控制16个MR-JE-C伺服电机,这对于需要多轴协调工作的场合,如机器人、自动化生产线等,具有极大的优势。每个轴的运动参数可以通过PLC进行独立...
标题中的“根据网络连接控制IE启动”指的是一个小程序的功能,它能够依据计算机的网络状态来决定是否启动Internet Explorer(简称IE)浏览器。这样的程序在某些场景下非常实用,比如在网络不稳定或者用户希望节省...
而“OutdoRefresh.exe”很可能是该自动刷新工具的可执行文件,用户需要运行这个程序来启动工具并设置刷新参数。 在使用这类工具时,用户需要注意以下几点: 1. 安全性:确保从可靠来源下载工具,避免潜在的病毒或...
一种可能的解决方案是通过创建一个HTML页面,该页面包含一个指向Chrome可执行文件的链接,然后在IE中打开这个页面,让用户点击链接来启动Chrome。但这种方式并不直接,且用户体验较差。 在实际应用中,这种跨浏览器...
1. **行为监控**:它会实时监控IE浏览器的活动,当检测到有程序试图通过IE启动时,会进行拦截并警告用户。这可以帮助防止未知的、潜在有害的程序被执行。 2. **白名单机制**:只允许已知的安全程序通过IE启动,其他...
标题“IE11安装程序.rar”表明这是一份包含了Internet Explorer 11(简称IE11)安装程序的压缩文件,适用于两种不同的处理器架构:32位(X86)和64位(x64)。这个压缩包显然是为了帮助用户在他们的Windows 7系统上...
其中,BHO是IE中最常用的扩展方式之一,能够深度集成到浏览器中,监听并处理各种浏览器事件。 (2)内容扩展(Content Extents) 这类扩展由IE的内容部分调用,如ActiveDocuments、ActiveXControls、Behaviors等。...
你可以不用再另外打开IE访问只能在IE中访问的网站并运行ActiveX控件。 这个扩展只支持Windows. 这个扩展支持Chrome 6 以及更高的版本 *在Chrome浏览器中用多标签的IE *In-Chrome Process and Separate Process ...
【描述】中的关键点在于其扩展了C#中的`WebBrowser`控件,这是一个内置于.NET Framework中的组件,用于在Windows应用程序中嵌入一个浏览器引擎。原生的`WebBrowser`控件虽然能够显示HTML内容并支持基本的导航操作,...
在 Ole_ie 对象的 DocumentComplete 事件中,可以添加如下代码来更新页面标题和控制按钮状态: ```pb string ls_title ls_title = ole_ie.object.Document.Title st_title.Text = ls_title // 更新页面标题 if ole...
标题中的“ie不能打开新链接修复程序”是一个针对Internet Explorer(IE)浏览器的特定问题的解决方案。这通常意味着用户在尝试点击网页上的超链接时,IE浏览器无法正常启动新的浏览窗口或标签页。这种情况可能由...