これでけでは役に立ちませんが、少し改造してサーバー側に置いて ファイルの部分を返すようにすれば、ローカルでは VBS のみで http 経由のファイルのダウンロードができるようになります 関連ページ(http な小さなファイル) <? $size = filesize($argv[1]) + 0; $part = array(); for( $i = 0; $i < ($argv[2]+0)-1; $i++ ) { $part[] = floor($size / ($argv[2]+0)); } $part[] = $size - ($part[0] * ($argv[2]-1)); $fp = fopen( $argv[1], 'rb' ); for( $i = 0; $i < ($argv[2]+0); $i++ ) { $buff = fread( $fp, $part[$i] ); $filename = sprintf( "%s.%03d", $argv[1], $i+1 ); $fp2 = fopen( $filename, 'wb' ); fwrite( $fp2, $buff ); fclose( $fp2 ); } fclose( $fp ); ?> で、この内容はすぐ終わり、コマンドプロンプトな PHP という方向性で (2010/04/24:リンク切れ) で ずっと遊んでたのですが、一応簡単な API は問題無く動き、unlha32.dll も解凍でき、 喜んだのは一瞬だけで、どうしてもメッセージが戻って来ないんですよねぇ・・・ ( ※そこだけで2時間はやってたと思う ) そもそも、PHP の w32api が ffi に変わって結局今の php で使え無いというところまで確認して DynamicWrapper にたどり着いて、結局まあ収穫ではありましたが大手を振って PHP から Windows API では無いわけです。 でも、最後の手段的な道具としては使えると言えば使えます。 ただ、Framework で API 動的Call して COM で公開して COM で使えば確実なので、 その手間が惜しい時のみです。 Set Fso = CreateObject( "Scripting.FileSystemObject" ) strCurPath = WScript.ScriptFullName Set obj = Fso.GetFile( strCurPath ) Set obj = obj.ParentFolder strCurPath = obj.Path target = strCurPath & "\test.lzh" Set UserWrap = CreateObject("DynamicWrapper") UserWrap.Register "Unlha32.dll", "Unlha", "i=hsrl", "f=s", "r=l" ret = String(128, chr(0)) UserWrap.UnlhaA Null, "x -p2 " & target & " " & strCurPath & "\melt\", ret, 127 Set UserWrap = Nothing |