Windows 10

Microsoft Edgeを起動してキー操作を送るWindows 10のバッチ

ITproに「Windows 10のコマンドプロンプトを使い込む – UWPアプリを起動してキー操作を送れるWindows 10のバッチ」という記事が載っていました。

startコマンドで起動したMicrosoft Edgeに「sendkeys.exe」を使ってキー送信するバッチが紹介されていて、私もさっそく試そうと思ったのですが、

'sendkeys' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

試したのは【Windows 10 Pro Insider Preview x64 – 10.0.14366 ビルド 14366】環境なんですが、設定が足りていないのかビルドが違うからなのか、とりあえずsendkeys.exeが見つかりません。

sendkeys.exeを諦める

これではUWPアプリにキー送信するバッチが作れないわけですが、別にsendkeys.exeが無いならそれはそれでもう良しとして(探すの面倒くさくなりました)、別の方法で処理を実行します。

そう、古来よりの伝統手法WSHのSendKeysメソッドを使います。

・SendKeys.bat

@if(0)==(0) ECHO OFF
start shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge
::choice /C YN /D Y /T 2
timeout /T 2
cscript.exe //nologo //E:JScript "%~f0" %*
echo Edgeが起動しました。
@pause
GOTO :EOF
@end
var ws = new ActiveXObject("WScript.Shell");
ws.AppActivate("Microsoft Edge");
WScript.Sleep(100);
ws.SendKeys("{F4}");
WScript.Sleep(300);
ws.SendKeys("http://www.yahoo.co.jp/~");

バッチ内でDOSコマンドとJScriptが混在していますが、これはよく使われる手法ですね。1ファイルで処理できるので中々便利です。

上記バッチでやっていることは、

startコマンドでEdgeを起動

timeoutコマンドで起動待ち

(ここからJScript)

Edgeのウィンドウをアクティブにする

F4キーを送信してアドレスバーにフォーカス

URLを送信してYahoo!を開く

といった処理で、実際の動作は下記画面になります。

BAT_UWP_SendKeys_01

おわりに

実際にバッチからEdge(UWPアプリ)を起動してキー送信してみましたが、

“Windows 10時代にこんな需要あるのか?”

というのが最大の疑問です。
もちろんDOSバッチにはまだまだ需要があると思いますが、バッチからUWP操作というのは無理があるような・・・。
(SendKeysも不安定ですし、UI Automation使った方がよほど確実)

・・・とまあ、そんなことを言うのは実に無粋。
バッチからUWPアプリを操作できる ― その事実が重要なんだ、そう思った次第です。

東京でオトカドールのプレイが録画できるようになりました(3)前のページ

[Officeアドイン]OneNote Online用のアドインを作ってみる。次のページ

関連記事

  1. Windows関連

    C#からWinium.Cruciatusを使ってみた。

    前回の記事では、Winium WebDriverを使ってメモ帳を操作し…

  2. Windows関連

    [Windows 8]メトロスタイルのアプリを並べて使う。

    ※ 下記はWindows Developer Preview(英語版・…

  3. Windows 10

    Windows Insider Meetup in Japan 2019 東京に参加しました。

    Windows Insider向けのミートアップイベント「Window…

  4. Windows関連

    Windows 10 IMEの「クラウド候補機能」の仕組みを追ってみた。

    「ついにWindows 10 日本語IMEにクラウド候補機能が搭載され…

  5. Windows 10

    【2017年3月版】Microsoft Edgeでブックマークレットを使う方法

    2015年8月にMicrosoft Edgeでブックマークレットを使う…

  6. Windows 10

    YouTubeの「歌ってみた」動画を非表示にするMicrosoft Edge拡張機能

    私はよくYouTubeで動画を見るのですが、公式PVを見たいだけなのに…

コメント

  • コメント (1)

  • トラックバックは利用できません。

  1. はじめまして。
    edgeをなんとかseleniun使わずに自動化出来ないか調べていて
    こちらに辿り着きました。
    おかげさまで自動化出来ました。
    ありがとうございます。

    アプリケーションのsendkeysですが、
    おそらくアプリケーションのあるフルパスが書けば動くかとおもいます。
    私は結局Chromeを使うことにしたのでedgeでは使っていないのですが、
    chromeでは上手く動作してくれました

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP