通过浏览器打开本地exe应用(支持任意浏览器)

本文介绍了一种在IE浏览器中运行本地EXE文件的方法,利用ActiveXObject实现,并讨论了如何向EXE程序传递参数。对于Chrome、Firefox等浏览器,由于安全限制,采用注册表方式调用本地EXE,亦探讨了参数传递方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IE浏览器下打开指定路径的EXE文件:

function Run(strPath) {
	//alert(strPath);
	try {
		var objShell = new ActiveXObject("wscript.shell");
		objShell.Run(strPath);
		objShell = null;
	} catch (e) {
		alert('找不到文件"' + strPath + '"(或它的组件之一)。请确定路径和文件名是否正确,而且所需的库文件均可用。')
	}
	//new ActiveXObject("wscript.shell").run(strPath); 
}

function openCHSUtils(utilName){
	var username = getQueryString('username');
	var text = utilName+'.exe -devextensions -command -username='+username+' -password=a83d78f9ef0b81d845509797a63f7644da192abd308b3db77b8f517e4f2d706de3f1b5df77bdadc9 -Xms512m -Xmn512m -Xmx1024m';
			
				Run(text);
				
			
	
}

ActiveXObject为IE浏览器的特有对象,因此该方式仅允许在IE浏览器下使用,且使用前必须配置IE浏览器的安全策略。

如需向exe程序传递参数,拼接cmd命令时将参数加入即可。

chrome、firefox等浏览器打开本地exe文件

因浏览器的安全策略问题,除ie外的其他浏览器均无法直接打开本地exe文件,因此采用将exe路径写入注册表的方式打开。

若需向exe传递参数,则需要用中间文件将注册表传入的参数进行转换

注册表内容如下:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CapitalLogic]
"URL Protocol"="D:\\MentorGraphics\\Capital2016.1\\bin\\CapitalLogic.exe"

[HKEY_CLASSES_ROOT\CapitalLogic\DefaultIcon]
@="D:\\MentorGraphics\\Capital2016.1\\bin\\CapitalLogic.exe"

[HKEY_CLASSES_ROOT\CapitalLogic\shell]

[HKEY_CLASSES_ROOT\CapitalLogic\shell\open]

[HKEY_CLASSES_ROOT\CapitalLogic\shell\open\command]
@="\"C:\\Users\\houman\\Desktop\\CapitalLogic.bat\" \"%1\" "

bat内容如下:

call CapitalHarnessXC.exe -devextensions -command -username=%1 -password=mangaer -Xms512m -Xmn512m -Xmx1024m
pause

若不需要向exe文件传递参数,则直接通过注册表调用exe即可

### 如何使用浏览器打开本地HTML文件 要实现通过浏览器访问本地 HTML 文件的功能,可以按照以下方法操作: #### 方法一:直接拖拽或路径输入 如果 HTML 文件位于计算机的某个目录下,则可以直接将其拖入已开启的浏览器窗口中。或者,在浏览器地址栏手动输入该文件的绝对路径并回车即可加载页面。对于 Windows 系统而言,通常需要以 `file:///` 开头加上完整的盘符和路径来指定目标文件的位置[^1]。 例如,假设有一个名为 index.html 的文档存放在 C:\Users\ExampleUser\Desktop 下面,那么可以在 Chrome 或 Firefox 这样的现代网页浏览工具里尝试如下URL形式调用: ``` file:///C:/Users/ExampleUser/Desktop/index.html ``` #### 方法二:设置简易Web服务环境 当希望模拟网络请求行为测试动态脚本效果时,仅依赖 file 协议可能不够理想。此时可以通过搭建简单的 HTTP(S) 服务器方式提供资源获取途径。Python 自带模块 http.server 可快速启动此类功能而无需额外安装软件包。 运行命令如下所示(适用于 Python 3.x 版本),其中端口号可以根据实际情况调整为其他未被占用数值: ```bash python -m http.server 8000 ``` 之后只需在任意兼容设备上的图形化界面客户端内键入形如 localhost:8000/<relative_path_to_your_html> 类型字符串便可正常预览内容了。 #### 方法三:移动端特殊处理方案 针对 Android 平台来说,默认情况下部分机型的安全机制可能会阻止直接利用 URI scheme 访问外部存储卡里的数据项。为此需借助 Content Provider API 构建合法的数据共享通道实例。具体做法涉及创建自定义权限声明以及注册相应的组件描述信息于应用清单配置文件之中[^3]。 示例代码片段展示如何构建指向 SD 卡根目录下一个叫做 testpage.html 资源链接对象的过程: ```java import android.net.Uri; //... Uri contentUriForBrowserAccess = Uri.parse("content://com.android.htmlfileprovider/sdcard/testpage.html"); Intent intentToLaunchInBuiltOrThirdPartyApp = new Intent(Intent.ACTION_VIEW); intentToLaunchInBuiltOrThirdPartyApp.setDataAndType(contentUriForBrowserAccess,"text/html"); startActivity(intentToLaunchInBuiltOrThirdPartyApp); ``` 另外值得注意的一点是关于 CHM 文档类型的在线呈现需求方面。由于其本质上是由多个压缩后的 HTML 页面集合构成,并附带索引结构以便高效检索相关内容条目之故,所以单纯依靠常规手段难以达成预期目的。一般建议先采用专门的应用程序解压提取后再上传至远程站点供大众查阅或是转码成为纯静态网页序列再发布出去[^2]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值