WSHでDLLを使う?

コマンドラインからマウスを操作する方法 (rundll32.exeで動くDLLの作成法) - 主に言語とシステム開発に関して

WSHでdllを使う方法というのがよくわからなかったけど、↑ここのおかげでなんとなく理解できた。
rundll32.exeに渡せば、限られてはいるようだけど使えるらしい。
過去に書いたものを見返してみると、音を鳴らしたり関連付け実行する時などで知らずに使ってたw


UWSCではurlmon.dllというなんたらライブラリを使って

def_dll URLDownloadToFileA(long,string,string,long,long):long:urlmon

指定したURLのファイルをダウンロードできる。


これをJScriptに置き換えて

'rundll32.exe urlmon.dll,URLDownloadToFileA 0,[url],[path],0,0'

引数が複数ある場合、スペースで区切るのかカンマなのかよくわからないので
一通り試してみた結果、エラーになるだけだったw


以前にVBSでやった気がするけど、urlmon.dllはEXCELを経由するとWSHで使える。

//save_path = ファイル名だけだとMy Documentsに保存

function downLoadFile(url, save_path) {
	var excel = new ActiveXObject('excel.application');
	excel.executeexcel4macro(
		'call("urlmon","URLDownloadToFileA","jjccjj",0,"' + url + '","' + save_path + '",0,0)'
	);
	excel = null;
};

だけど、uwscEXCELを経由していない感じなんだよなぁ。
よくわかんね。