1. 程式人生 > >通過瀏覽器開啟本地exe應用(支援任意瀏覽器)

通過瀏覽器開啟本地exe應用(支援任意瀏覽器)

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即可