2018年10月23日火曜日

InfinittonでAutoHotkeyやUWSCでスクリプトパラメータとか起動時パラメーターを使う方法


今年の頭くらいにInfinitton(インフィニトン)っていう液晶キーボードを買って、めっちゃ便利やんコレ!って思って使っていたんですが、いくつか不満点がありました。

私はよくAutoHotkey(オートホットキー)やUWSC(ユーダブリュエスシー)などの自動化ツールを使っているので、Infinittonのボタンを起動トリガーとして便利に使っています。

Infinittonでは「起動」アクションから特定のプログラムやスクリプトを記述したファイルを呼び出して実行できるのですが、いわゆるスクリプトパラメータとか起動パラメータといわれる、スクリプトを呼び出す際にオプションをつけて呼び出す機能が使えないなー、使えたら便利なのになーと思っていました。

で、先日色々試してたらInfinittonからパラメーターを呼び出す方法を見つけました!
ググっても見つけられなかったので記事にしておきます。
少しでもInfinitton使いの役に立てれば幸いです。


ちなみに環境は以下です。
・Windows10  Home
・Infinitton Smart Editor 1.1

やり方
※順を追って説明しているので、結果のみ知りたい方は「OKは方法」を見てください。


※拡張子が「*.ahk」はAutoHotkey、「*.uws」はUWSCでの記述です。
通常の「起動」アクションの使い方
「起動」項目に

C:\スクリプト名.ahk
C:\スクリプト名.uws

のように入力して使うと思います。

※NGな方法1
上記スクリプトにパラメーターを渡したい場合は

C:\スクリプト名.ahk パラメーター1
C:\スクリプト名.uws パラメーター1

または、それぞれをダブルクォーテーションで囲った

"C:\スクリプト名.ahk" "パラメーター1"
"C:\スクリプト名.uws" "パラメーター1"

としたくなりますが、これでは実行できません。
これは、AutoHotkeyやUWSCでパラメーターを取り込む形式になっていない為です。

※NGな方法2
コマンドプロンプトで実行する形にすると

"C:\Program Files\AutoHotkey\AutoHotkey.exe" "C:\スクリプト名.ahk" "パラメーター1"
"C:\Program Files (x86)\UWSC\UWSC.exe" "C:\スクリプト名.ahk" "パラメーター1"

となり、コマンドプロンプトでは実行できるのに、Infinittonではなぜかエラーになってしまいます。

OKな方法

頭のダブルクォーテーションを削除する】 です。

C:\Program Files\AutoHotkey\AutoHotkey.exe" "C:\スクリプト名.ahk" "パラメーター1"
C:\Program Files (x86)\UWSC\UWSC.exe" "C:\スクリプト名.ahk" "パラメーター1"

今回気づいたのは、頭のダブルクォーテーションを1個削除するとなぜかいけるってことです。
理由はよくわかりませんが、頭のダブルクォーテーションを1個削除すると、AutoHotkeyとUWSCの場合は、コマンドプロンプトで実行したような動作になるって事です。

ちなみにexe化したスクリプトなんかだと
C:\スクリプト名.ahk" "パラメーター1"
でも大丈夫でした。

このように頭にダブルクォーテーションがあると、後ろに続くパラメーターが正しく取得できません。

頭のダブルクォーテーションのみを削除するとパラメーターが取得できる。

パラメーターを指定できるようになると何がいいのか?

これまではInfinitton Smart Editor(Infinittonの設定ツール)で設定できない動作は、動作1つに付き1つのスクリプトファイルやショートカットファイルを準備していました。
ですが、パラメーターを指定する事で、1つのスクリプトファイルで済むので楽です。

また、この方法はInfinitton Smart Editor 1.1の仕様かバグかわかりませんが、今後アップデートで仕様が変わるかもしれません。
やっぱり通常の記述でパラメーターが使えた方がいいので、メーカー様の今後のアップデートに期待しております。

ちなみに

ググって海外の方のレビューなどを見ていたのですが、MultiEXEという便利なプログラムが公開されていました。
これは、ダウンロードした「MULTIEXE(またはMULTIEXE2)」というファイルをダウンロードし、リネームして実行する事で、その名前の動作をするプログラムのようです。
「MULTIEXE」を「minimize.exe」とリネームし、Infinittonの起動アクションに設定すると、アクティブウィンドウを最小化する、といったような動作になります。
最小化以外にも休止状態やサスペンド、カーソルの移動やスクロールなどのInfinittonのホットキーやマクロでは再現できないような動作ができるようですね。
便利そうなのでついでに紹介しておきます。
MultiEXE


ではでは

追記 2018.11.11

この記事の公開後、Infinittonで便利に使えるフリーソフトを作りました。
結構使えるソフトだと思うので、よかったら使ってやってください。

0 件のコメント: