2011-12-18 10 views
0

我有一個網絡應用程序,必須從CDROM運行。如何從HTML頁面調用exe文件?

我需要執行一個exe文件,我在做這件事時遇到問題。在IE中,如果我從錨點調用href =「file:// path/exefile」,我可以在Firefox中執行它(在一對安全請求之後),而用戶必須保存exe文件,然後運行它並出現錯誤。

有沒有辦法從瀏覽器運行exe(我不知道,說使用Flash或其他東西)?

我不使用http://協議,而是使用file://協議,因爲它是從CDROM運行的。

+0

@ TomalakGeret'kal:我想你還沒有使用任何軟件雜誌光盤。有許多計算機雜誌爲軟件分發創建自動運行光盤。在印度,我們有Digit/Chip – 2011-12-18 16:34:09

+2

@AmitRanjan - 其中大部分都是**不是** web應用程序,而是自定義可執行文件。 – Oded 2011-12-18 16:35:05

+1

@AmitRanjan:這與萬維網有什麼關係? – 2011-12-18 16:35:07

回答

3

感謝{$ deity}沒有,否則您查看的任何網頁都可能在瀏覽器沙箱以外的機器上執行隨機代碼。

這是不可能的,因爲允許網頁運行任何可執行文件的嚴重安全隱患。

+0

確實。這聽起來像一個「網絡」應用程序是這個項目的一個非常糟糕的選擇。 (這也聽起來像它沒有妥善計劃..!) – 2011-12-18 16:31:31

+2

@Downvoter - 照顧評論? – Oded 2011-12-18 16:39:54

0

Internet Code Download linking (AS PER MSDN)

在這種複雜的替代方案,網頁繞過通過利用互聯網下載代碼的普通文件下載過程。 Internet代碼下載是Internet Explorer功能,它允許網頁自動下載ActiveX控件和其他本機代碼對象。通過Internet代碼下載獲得的文件通過可通過安全選項控制的ActiveX安全框架。 1.如果「可執行文件」不是可簽名的PE(.exe)(例如.bat文件),則文件必須以下列形式打包在帶有INF的.cab文件中。 **

[version] 
    signature="$CHICAGO$" 
    AdvancedINF=2.0 
[Add.Code] 
    file.zzz=file.zzz 
[file.zzz] 
    clsid={15589FA1-C456-11CE-BF01-00AA0055595A} 
    FileVersion=1,0,0,0 
    hook=zzzinstaller 
[zzzinstaller] 
    run=%EXTRACT_DIR%\file.zzz 

** 替換上面要運行的可執行文件File.zzz的實例。

有關如何打包.cab文件,請訪問下面的Microsoft Developer Network(MSDN)網站的詳細信息: http://msdn.microsoft.com/en-us/library/aa741200(VS.85).aspx(http://msdn.microsoft.com/en-us/library/aa741200(VS .85).aspx)2.確保.exe(或.cab)是代碼簽名的。如果.exe沒有被簽名,可以使用CryptoAPI Authenticode代碼簽名工具完成。有關詳細信息,請參閱MSDN Platform SDK中的「安全」標題下的CryptoAPI文檔。

出於安全原因,爲組織簽發代碼的過程最好由整個組織信任的中央機構處理。代碼簽名需要從外部供應商(如VeriSign)購買昂貴的證書或維護內部網上的證書服務器(如Microsoft Certificate Server)。 3.使用此示例頁面作爲必要的鏈接和腳本啓動簽名代碼,而不提示指導:

<HTML><HEAD><TITLE>Page of executable links</TITLE></HEAD> 
<BODY> 
<BR/> 

<!-- hyperlink uses central script function called linkit() --> 
<A HREF="" onclick="return linkit('signed-testfile.exe');"> 
SIGNED-CLOCK.EXE</A> 

<SCRIPT> 
// linkit puts filename into HTML content and spews it into iframe 
function linkit(filename) 
{ 
    strpagestart = "<HTML><HEAD></HEAD><BODY><OBJECT CLASSID=" + 
     "'CLSID:15589FA1-C456-11CE-BF01-00AA0055595A' CODEBASE='"; 
    strpageend = "'></OBJECT></BODY></HTML>"; 
    runnerwin.document.open(); 
    runnerwin.document.write(strpagestart + filename + strpageend); 
    window.status = "Done."; 
    return false; // stop hyperlink and stay on this page 
} 
</SCRIPT> 

<!-- hidden iframe used for inserting html content --> 
<IFRAME ID=runnerwin WIDTH=0 HEIGHT=0 SRC="about:blank"></IFRAME><BR/> 

</BODY></HTML> 

,本文討論由獨立於Microsoft的公司生產的第三方產品。對於這些產品的性能或可靠性,Microsoft不作任何暗示或其他形式的保證。

+0

如OP所述,這對Firefox和其他瀏覽器如何工作? – Oded 2011-12-18 17:31:27