2010-11-18 10 views
4

私はデスクトップアプリケーションをフラッシュドライブにWindows、Mac、Linuxの何千ものユーザーに配布しています。私は、フラッシュドライブ上にあるドキュメント、インストールガイド、リリースノートなどへのリンクを持つHTMLの初心者ページを持っています。私はユーザーがブラウザから直接インストールするのが大好きですが、アンチウィルスプログラムが防止しようとしていることはまさにそうです。インストーラを起動しようとするのではなく、インストーラを見つけて、ユーザが最後のステップを取ることができれば十分です。Webブラウザからファイルシステムのフォルダ/ディレクトリを開く

ホストコンピュータ上のファイルシステムマネージャ(エクスプローラ、ファインダなど)でファイルが保存されているフォルダを開き、ハイライト表示させることはできますか?これにはJavaScriptが必要であると仮定し、おそらくWindows、Mac、Linuxでは異なる必要があります。さらに、ほとんどのブラウザ(IE、FF、Chrome、Safari、Opera)で動作します。

これはFermatの最後の定理を解くのと同様の困難なスケールですか?

ありがとうございました

答えて

2

このJSコードは、ページがローカルファイルシステムからロードされている限り、IEとFirefox for Windowsで動作するはずです。 Linux/OSXでこれをテストする必要があります。私はあなたがクロム/サファリ/オペラに近づく方法を知らない。

function execute(command, commandParam) 
{ 

    if (isIE()) { 
    try { 
     activexShell = new ActiveXObject("Shell.Application"); 
     activexShell.ShellExecute(command, commandParam, "", "open", "1"); 
     exit(); 
    } catch (e) { 
     alert("exception " + e.name + ': ' + e.message); 
    } 
    } 
    else { 
    try { 
     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
     var FileFactory = new Components.Constructor("@mozilla.org/file/local;1","nsILocalFile","initWithPath");  
     var program = new FileFactory(command); 
     var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces. nsIProcess);   
     process.init(program); 
     process.run(false, commandArray, commandParam.split(" ").length - 1, {}); 
     exit(); 
    } catch (e) { 
     alert("exception " + e.name + ': ' + e.message); 
    } 
    } 
} 

もちろん、.jsファイルに署名する必要がある場合があります。詳細については、こちらをご覧ください:http://www.mozilla.org/projects/security/components/signed-scripts.html

1

いいえ。ブラウザ(またはそれらの大部分)は、この種の動作を防ぎます。彼らはあなたの実際のファイルシステムとWebがあなたにサービスを提供するコンテンツの間に壁を持っています。 HTML入力コントロールだけがこれを打ち破り、その周りにはかなりの保護があります。

* IE ActiveXコントロールを使用できますが、これはIEのみです。

関連する問題