スポンサーリンク

WSHで,Sendkeysメソッドで日本語を文字化けせず自動入力する方法 (VBScript+JScriptの両方で可能。clipコマンドを使用)

WSHのSendkeysメソッドで,日本語の文字列を, 文字化けせずに正確に自動入力する方法。


まず,Windows Vista以降であれば,コマンドプロンプトでclipコマンドを使える。

echo ほげ| clip

↑これで,クリップボードに日本語のテキストが格納される。

あとは,CTRL+Vでペーストすればよい。

WSHで使ってみよう

この処理をWSHで記述してみよう。

var sh = WScript.CreateObject("WScript.Shell");

// 文字列をクリップボードに格納
sh.Run( "cmd.exe /c echo 格納したい文字列| clip", 0, true );

// ペースト
sh.SendKeys( "^v" );

これでOK。

このテクニックは,Windows7やWindows8でも使える。


ちなみにWindows XPにはclipコマンドはない。フリーソフトで探せばあるけどね。

clipコマンドの使い方:

@IT:Windows TIPS -- Tips:コマンドラインからクリップボードへコピーす

http://www.atmarkit.co.jp/fwin2k/win2...

  • clipコマンドを使うことにより、ファイルを経由したり、コピー&ペースト操作をしたりせずとも、直接クリップボードへテキスト・データをコピーすることができる。Windows Server 2003には、コマンドライン・ツールとして、clip.exeが用意されている


Windows - コマンドプロンプトで標準出力結果などをクリップボードにコピーするコマンド - Qiita
http://qiita.com/opengl-8080/items/a5...

  • リダイレクトを使ってファイルの内容をクリップボードにコピー。clip < hoge.txt


今更だけどコマンドプロンプト3つのTips | 蒼の王座・裏口
http://sqlazure.jp/r/tool/126/

  • Windows Vista以降に搭載れている機能


Window7、文字列をクリップボードにコピーするバッチファイルを作る|マコトのおもちゃ箱 〜ぼへぼへ自営業者の技術メモ〜
http://piyopiyocs.blog115.fc2.com/blo...

  • SET /P<NUL="ほげほげ"|clip WindowsXP以前ではそもそも「clip」コマンドが使えない


Blogs - フィールドSEあがりの安納です - Site Home - TechNet Blogs
http://blogs.technet.com/b/junichia/a...

  • echo "ほげほげ" | clip.exe これで「ほげほげ」という文字列がクリップボードにコピーされたので、^v を使ってペーストすればよい

WScript#Runの使い方:

Windows管理者のためのWindows Script Host入門:第5回 WshShellオブジェクトの詳細(1) (2/4) - @IT
http://www.atmarkit.co.jp/ait/article...

  • Runメソッドの第2パラメータを指定することで、実行するウィンドウの状態を制御できる。
    • 0: ウィンドウを非表示にし、別のウィンドウをアクティブにする
  • Runメソッドの第3パラメータでは、起動したプログラムの終了を待つかどうかを指定