2011-01-16 10 views
0

私は自分のプロジェクトのWebインストーラを使用しており、ActiveXを使用して.exeファイルをダウンロードできるようにする必要があります。私は、ユーザーにダウンロードを促すダイアログを表示させたくありません。ユーザーがActiveXを承認したら、ファイルを適切な場所、たとえばC:\ TESTにダウンロードします。ActiveX .exeファイルのダウンロード

アイデア?

は、これは私がこれまで持っているものです:

<?php 

$filename = "WebLock.exe"; 
$handle = fopen($filename, "r"); 
$contents = fread($handle, filesize($filename)); 
fclose($handle); 
?> 

<html> 
<head> 

<title>Test</title> 
</head> 
<body> 
<center><b>Downloading Required Files...</b></center> 
<script> 
function IEsave(filename, sData) { 
    var fso, a; 
    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    file = fso.CreateTextFile(filename, 2, false); 
    file.write(<?php echo $contents ?>); 
    file.Close(); 
    return file; 
} 

alert(IEsave("C:\\WebLock.exe", "")); 

</script> 
Complete! 
</body> 
</html> 

唯一の問題は、それがファイルを書き込みません、です。ここで


は実際のページです:

Here is the published page!

+0

では、ユーザーのIEで信頼できるサイトからこれをやっているサイトですか? –

+2

exeのファイルの内容をHTMLに書き込んでいますか? o.O –

+0

@Pekka、ほとんどの場合..はい。しかし、ActiveXを許可するか許可しないかをユーザーに要求します。 @Time Machine、私はファイルに.exeの内容を書いていると思った...私はそうではないのですか? –

答えて

0

あなたは、独自のプラグインを作成しても、IEの保護モード機能による任意の場所にファイルを書き込むことはできません。

私は同じ問題を抱えていました。私の解決策は、低い完全性の場所にファイルを書き込み、UACダイアログでコピーを作成するためにシェルのSHFileOperationを呼び出すことでした。

しかし、可能であれば、すべてのユーザーの信頼できるリストにサイトを追加できます。ここで

は、関連する質問です:IE Protected Mode Problem?!

+0

私はこの作業をしていましたが、ただ停止しました。私が考えることができるすべてを試しました(テスト用の.txt)。私はIE8、IE9、Operaでテストしました –

+0

どういう意味ですか?独自のActiveXを書いたのですか、または信頼できるリストにサイトを追加しましたか? – Eugene

関連する問題