2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« コマンドラインで、サスペンド(スタンバイ)、ハイバネーション(休止)する。(その5) | トップページ | Temporary Internet Filesフォルダの開き方 »

2009年5月 4日 (月)

インラインMSHTAスクリプトはフォーカスが奪われる。

インラインMSHTAスクリプトは、とても便利なのですが、唯一、最大の問題は、フォーカスが奪われることです。:-(
例えば、「コマンドラインからクリップボードを使う。」の
http://scripting.cocolog-nifty.com/blog/2006/09/post_52b4.html

ToClip.CMD

@MORE | MSHTA.EXE vbscript:Execute("clipboardData.setData ""text"",CreateObject(""Scripting.FileSystemObject"").GetStandardStream(0).ReadAll():close:")

を実行すると、フォーカスが奪われてしまいます。:-(
なので、コンソールをクリックして、フォーカスを取り戻さなくてはなりません。:-(
これが、とても不便です。:-(

これは、htaファイルでも、同じです。
htaファイルを起動すると、フォーカスが奪われます。htaが終了すれば、戻って来ます。
しかし、ここで、もし、<hta:application windowstate=minimize >タグがあれば、いっとき奪われますが、すぐに戻ります。
そこで、<hta:application windowstate=minimize >タグをインラインMSHTAスクリプトに応用します。

ToClip.CMD

@MORE | MSHTA.EXE "about:<hta:application windowstate=minimize /><script>clipboardData.setData('text',new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(0).ReadAll());close();</script>"

« コマンドラインで、サスペンド(スタンバイ)、ハイバネーション(休止)する。(その5) | トップページ | Temporary Internet Filesフォルダの開き方 »