WSHでIEを使わずにクリップボードを操作

//getter
new ActiveXObject("htmlfile").parentWindow.clipboardData.getData("text");
//setter
new ActiveXObject("htmlfile").parentWindow.clipboardData.setData("text", "ぬるぽ");

こんな感じでクリップボードも操作出来ると思いきやgetterは動くのにsetterが動かない。セキュリティの関係なのか。と思ったら2chで発見した。
お前ら、wsh使ってますか? Part8の121

>>112
WSH は元々クリップボードを扱うことを想定していないから、
OLE の初期化という処理をアプリケーション側で行っていないんだよね。
だからクリップボードに値を設定することができない。
HTA のように OLE の初期化を行っているスクリプトホストであれば
>>112 のコードは正しく実行される。

じゃあ WSH では不可能なのかというと、API を直接呼び出して
WSH 上で OLE の初期化をさせてしまうという強引な方法もある。
コードの理解には DynaCall や Win32API の知識が必要になるけど、
DynaCall を登録後、以下の三行をオマジナイとして
>>112 のコードの前に追加してみてください。
WSH でもクリップボードに値を設定できるはずだよ。

var dynwrap = new ActiveXObject('DynamicWrapper');
dynwrap.register('ole32','OleInitialize','f=s','i=l','r=l');
dynwrap.OleInitialize(0);

なるほど原因は分かった。そこまでして強引にクリップボード扱いたい事もないけど。