【図解】経理の原則 物事の『本質』を大切にするサイトです
ホーム  Ⅰ個人事業主の確定申告  Ⅱ個人事業主・法人会計  Ⅲ消費税  Ⅳ会計ソフト  Ⅴ事業におすすめサービス・フリーソフト  Ⅵ[自作ソフト]二刀流宛名印刷

【図解】経理の原則
 物事の「本質」を大切にするサイトです


ページ更新日:2017/07/10 

フリーソフトStrokesPlusの使い方・サンプル
~高機能なマウスジェスチャー~

このページの内容

StrokesPlusは、右クリックしながらマウスを少しだけ動かすことによって、割り当てられた動作を行うフリーソフトです(キーボードのショートカットキーの”マウス版”みたいなイメージです)。
StrokesPlusは、繰り返しの手作業を部分的に早く実行するのに最適なソフトだと思います。

非常に高機能で便利なソフトですが、以下のサイトにあるようなLuaスクリプトの記述が必要になります。
・StrokesPlusヘルプ
・サンプルスクリプト

StrokesPlusの情報は、インターネットで検索してもまだ少ないかと思いますので、私が使用しているLuaスクリプトをサンプルとしてご紹介します。必要に応じて、コピペしてお使いください。

このページの目次
ダウンロード・インストール
日本語化
アクション・ホットキーのLuaスクリプトの記述の仕方 
Luaスクリプトのサンプル
もっと高度な処理をしたい場合
エラーメッセージ
※このページは、サンプルのご紹介がメインとなりますので、操作の仕方などは、必要に応じて、上記リンク先をご確認ください。
※このページは、StrokesPlusの情報が少ないため、私のWindows7環境で試行錯誤した結果を整理したものです。
ご利用の環境によっては、スクリプトの動作が失敗・不安定になることもありますので、参考程度にご覧いただき、必要に応じて修正してお使いください。





  

ダウンロード・インストール

StrokesPlusには、インストール版とポータブル版があります。
以下のサイトから、ダウンロードできます。
ダウンロード・インストールの仕方
Vector Vectorサイト より、インストール版のみダウンロードできます。
公式サイト こちらのサイト の案内に従って、公式サイト(英語)でダウンロードください。インストール版とポータブル版がダウンロードできます。


私は、以下の点から、公式サイトからダウンロードできるポータブル版を します。
・フォルダごとバックアップしておけば、苦労して作成した設定ファイルを簡単にバックアップできます(フォルダの中にある「StrokesPlus.xml」ファイルにLuaスクリプト、「StrokesPlus.lua」に大域uaが保存されていると思います)。
・フォルダごと持ち運びすれば、スクリプトも一緒に別環境で利用できます。



  

日本語化

日本語化の方法は、 こちらのサイト をご覧ください。




  

アクション・ホットキーのLuaスクリプトの記述の仕方

StrokesPlusでは、大きく2通りの呼出し方があります。この呼出し方によって、Luaスクリプトの記述場所が異なります。
処理を呼び出し方法 Luaスクリプトの記述場所
①マウスのジェスチャー 「アクション」タブの「Luaスクリプト」(下図の赤枠部分)にスクリプトを記述します。
詳細は、 「StrokesPlusヘルプ」アクションの作成: をご覧下さい。
②ホットキー(Ctrl+Cなど) 「ホットキー」タブの「Luaスクリプト」にスクリプトを記述します。
詳細は、 「StrokesPlusヘルプ」ホットキーの作成: をご覧ください。


①のLuaスクリプトの記入場所
 


大切だと思うこと
基本的には、ショートカットキーを使って、やりたい動作を実現させます。
例えば、デスクトップを表示したい場合は、Windowsキー + dキー を押します。この場合、Luaスクリプトには、 acSendKeys("@d") と記述します。
記述の仕方は、 acSendKeysの使い方:  をご覧ください。


状況に応じて、StrokesPlusの有効な使い方は異なります。ご自身が繰返している手作業を見つけて、その一連の作業をスクリプトにまとめて記述するのが最も有効な使い方だと思います(通常、PC上で行う手作業は、acSendKeysで対応できます)。
そうすれば、StrokesPlusから簡単に呼び出してあげることができます。



複雑な処理を記述していると、正しくスクリプトを記述しているのに、動作が失敗して、困ったり、悩むことがあります。
この場合は、処理が失敗する場所の前・後・前後に、acDelay(数値) と記述して処理を少し遅らせてあげると、動作が安定することが多いです。


私の環境では、次のスクリプトで動作が失敗することがありました。
処理 スクリプト 備考
ショートカットキーCtrl+Vで張り付ける acSendKeys("^v")
クリップボードに値をセットする acSetClipboardText("セットしたい値") 前と後ろの両方に、acDelay(数値)と記述すると安定しました。私の環境では、後ろにも記述が必要でした。
アプリを起動する acRunProgram("ここにはEXEのフルパスを入力","",0, 1) アプリ起動後に続けて処理をしたい場合は、アプリが起動するまで待機してあげる必要があります。acRunProgramの後に、多めに待機させるとよいです。
ホットキーでスクリプトを実行する場合 例えば、ホットキーで「Ctrl」+「c」に対して、以下の小文字の「a」を1文字を入力させるスクリプトを1行を記述した場合

acSendKeys("{DELAY=10}a")
ホットキーからスクリプトを実行する場合は、その前にacDelay(数値)をしっかり記述しないと、余分なショートカットキーが押されてしまい、その結果、想像がつかない動作をすることがあります。

左記の例では、「Ctrl」+「c」キーを押したとき、選択場所に「a」の1文字が入力されるのが正しい動作です(StrokesPlusのショートカットキーが優先され、Windows標準ショートカットキーであるコピーは実行されません)。

しかし、待機時間が足りないため、「Ctrl」+「c」+「a」が同時に押されてしまい、「Ctrl」+「a」キーのショートカットキーが実行されます。その結果、カーソル位置の文字が全選択されます(「a」は入力されません)。

もしも、acSendKeys("{DELAY=10}ax")と記述した場合、文字の全選択に加えて、「Ctrl」+「x」キーのショートカットキーも実行されます。その結果、文字が全て切り取られてなくなってしまい、非常に焦ります。

こうなると、どんな結果になるか分かりませんので、注意しましょう。


StrokesPlusが強制終了して画面が固まってしまったら、 「ESC」キーを5秒くらい押し続けてみましょう。
特に複雑な処理をしていると、ときどき、以下のような画面が表示されて、画面とマウスが固まることがあります。マウスもキーボードも操作ができません。
Strokesplusの強制終了

こうなると、なんとか、ショートカットキーを使って、タスクマネージャーの起動はできるのですが、StrokesPlusを選択できません。何回もこのような事態に遭遇し、非常に焦ってしまいました。
このような場合、私の環境では、「ESC」キーを押し続けると、StrokesPlusの強制終了が無事完了して、マウスもキーボードが使えるようになりました。もしも困ったときはお試しください。


上記のようなこともありますので、重要なスクリプトを記述したときは、「適用」ボタンではなくて、「OK」ボタンを押しましょう。
「適用」だと、StrokesPlusが強制終了した場合に、スクリプトが保存されません。



  

Luaスクリプトのサンプル

ソフトのインストール後、デフォルトでスクリプトが記述されていますので。実際にマウスジェスチャをしてみて、色々試してみると良いかと思います。

自分でスクリプトを記述してみたいという方は、必要に応じて、以下のサンプルスクリプトをコピペしてご利用ください。
繰り返しになりますが、ショートカットキーを使う動作だけで、多くのことができると思います。
例えば、デスクトップを表示したい場合は、Windowsキー + dキー を押します。この場合、Luaスクリプトには、 acSendKeys("@d") と記述します。
記述の仕方は、 acSendKeysの使い方:  をご覧ください。


デスクトップ関連

操作 Luaスクリプト
デスクトップを表示 ●記述内容(以下をコピペして下さい)
acSendKeys("@d")

●説明
スクリプト 説明
acSendKeys("@d") Windowsキーとdキーを押す




エクスプローラー関連

操作 Luaスクリプト
戻る エクスプローラーで戻りたい場合は、acSendKeys("%{LEFT}")と記述します。
ただし、これだけだと、エクスプローラー以外のソフトがアクティブの場合、エクスプローラーの上で、マウスジェスチャーをしても動作しません。そこで以下のような記述をしています。

●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("%{LEFT}")

●説明
スクリプト 説明
acActivateWindow(nil,gex, gey) ジェスチャ終了位置の下にあるウインドウをアクティブにする
acSendKeys("%{LEFT}") Alt+左 キーを押す
※この後にご紹介するスクリプトで、上記パターンはたくさん出てきます。


<別の記述方法>
以下の記述でも、同じ動作になります。
acConsumePhysicalInput(1)
acMouseClick(gex, gey, 2, 1, 1)
acSendKeys("%{LEFT}")
acConsumePhysicalInput(0)

スクリプト 説明
acConsumePhysicalInput(1) 2行目のacMouseClickで実際にクリックさせないために記述。

※これがないと、2行目の acMouseClick で、マウスの下にファイルがあると、実際にクリックしてファイルが開いてしまいます。
これを回避するために、ときどき使うのですが、少し注意が必要です。
例えば、acConsumePhysicalInput(1) ~ acConsumePhysicalInput(0) の間に、メッセージを表示するスクリプトを書くと、メッセージが表示された状態で、マウスとキーボードを使えないので、何も操作できなくなります。このようになったら、いろいろ試しましたが、PCの再起動や強制終了するしかないと思います。
acMouseClick(gex, gey, 2, 1, 1) 別のアプリがアクティブだったり、右クリックメニューが表示されている場合にも対応できるように、左クリックして、マウスジェスチャーをした下にあるエクスプローラーをアクティブにする
acSendKeys("%{LEFT}") Alt+左 キーを押す
acConsumePhysicalInput(0) 1行目を解除

進む 上記と同じように記述します。2行目の acSendKeys("%{RIGHT}") だけが異なります。

●記述内容
acActivateWindow(nil,gex, gey)
acSendKeys("%{RIGHT}")



アプリケーション関連

操作 Luaスクリプト
アクティブなアプリケーションを閉じる、パソコンを終了するなど(Alt+F4を押す)
●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("%{F_4}")

※私の環境では、なぜか上記スクリプトで、エクセル(Excel2013)だけ終了できません(Word2013は、終了できます)。
アクティブなアプリケーションを最小化する
●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acMinimizeWindow(nil, gsx, gsy)


特定のアプリケーションを起動する。起動中の場合は、選択する ●記述内容(以下をコピペして下さい)
acDelay(40)
acRunProgram("ここにはEXEのフルパスを入力","",0, 1)
acDelay(40)

●説明
スクリプト 説明
acDelay(40) 処理を待機させます。
私の環境では、この記述がないとアプリの起動が失敗することがあります。
acRunProgram("ここにはEXEのフルパスを入力","",0, 1) EXEのフルパスは、バックスラッシュはエスケープする必要あります。
例えば、「C:\windows\notepad.exe」は、「C:\\windows\\notepad.exe」と記述しなければなりません)
acDelay(400) 処理を待機させます。
アプリ起動後に続けて処理をしたい場合は、アプリが起動するまで待機してあげる必要があります。acRunProgramの後に、多めに待機させるとよいです。

選択した絶対パスのファイル、または、URLを直接開く。 例えば、ホットキーCtrl+eに対して、以下のLuaスクリプトを記述します (参考URL)。

●記述内容(以下をコピペして下さい)
acSendKeys("^c")
acDelay(40)
acSendKeys("{DELAY=1}@r")
acDelay(40)
acSendKeys("{DELAY=1}^v")
acDelay(400)
acSendKeys("~")

すると、「C:\test\note.txt」という文字列を選択して、Ctrl+eを押すだけで、note.txtファイルを直接開くことができます。
また、「C:\test」という文字列を選択して、Ctrl+eを押した場合は、testフォルダを開くことができます。URLも開けます。
エクスプローラーをわざわざ開かなくてファイルが開けるので、個人的には、非常に重宝しております。

このように一連の手作業をまとめてスクリプトに記述するのが、StrokesPlusの有効的な使い方だと思います。


インターネット関連
以下の記述で、基本的には、FireFox、Crome、インターネットエクスプローラーなど、どんなブラウザでも対応できます。
各ブラウザ専用のマウスジェスチャツールもありますが、複数のブラウザを利用する方は、StrokesPlusで一括して管理できるのが便利かもしれません。
操作 Luaスクリプト
戻る 前述のエクスプローラーの戻ると同じ記述です。
(別の記述の仕方もありますが、「大域アクション」に以下の記述をしておけば、インターネットとエクスプローラー両方に対応できます)

●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("%{LEFT}")

進む 前述のエクスプローラーの進むと同じ記述です。
(別の記述の仕方もありますが、「大域アクション」に以下の記述をしておけば、インターネットとエクスプローラー両方に対応できます)

●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("%{RIGHT}")

左のタブを選択
●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("^+{TAB}")
右のタブを選択
●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("^{TAB}")
ページを更新する
●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("{F_5}")
選択しているタブを閉じる
●記述内容(以下をコピペして下さい)
acActivateWindow(nil,gex, gey)
acSendKeys("^w")


その他

操作 Luaスクリプト

※「マウス/キー修飾子」の「右ボタン」以外にチェックが入っていると、右クリックしながらでは動作しないと思います。

  

もっと高度な処理をしたい場合

StrokesPlusでは、次のような処理が可能です。これだけでも、いろいろな動作ができます。
・アプリごとのアクション・ホットキーの設定
・キーボード操作(上記サンプルacSendKeysで紹介したもの)、マウスクリック、、ウインドウ操作、クリップボード、メッセージやインプットボックスなど
・ローカル変数の利用
・全てのアクション利用できる独自関数やグローバル変数を定義することができます(「大域lua」タブにスクリプトを記述します)。
・条件分岐(if)、goto topによる ::top:: へのジャンプ


ただし、日本語の利用、文字列操作、ユーザーフォームの作成、ファイル操作などはできないと思います。
このような処理をしたい場合は、以下のような対応を検討するとよいと思います。

●外部のExeファイルとの連携
前述の通り、StrokesPlusのacRunProgramを使えば、外部アプリを起動することができます。
例えば、文字列操作、フォームの起動、ファイル操作などの処理などを記述した外部のExeファイルを作っておき、StrokesPlusからこのExeファイルを呼び出すことができます。

StrokesPlusと外部Exeファイルのデータの受け渡しが必要な場合は、クリップボードが使えます。
この場合、StrokesPlus側で、アクティブウインドウ、データ、マウス位置など必要な情報をカンマ区切りなどでまとめてクリップボードにコピーします。そして、外部のExe側でクリップボードの値を分解して、処理をするとご希望の処理が実現できると思います。

StrokesPlusでは、日本語のコメントを残せないなどのデメリットもありますので、複雑な処理は、外部のExeファイル側で実行したほうがよいと思います。


●StrokesPlusの全アクションの実行前・実行後などに共通の処理を記述できます(大域luaを使います)。
あまり利用する機会があるか分かりませんが、 これにより、複数のアクションをつなげていくことができます。



     

エラーメッセージ

最後に、私の経験しましたエラーメッセージをご紹介します。


RegisterHotKey error 1409 : そのホットキーは既に登録されています。
このエラーが発生した場合は、StrokesPlusで登録したホットキーと別のアプリで登録したホットキーが重複している可能性があります。
(StrokesPlusの中でホットキーが重複しているわけではありません。)
どちらか一方のアプリのホットキーを変更すれば、このメッセージは消えます。
  

ずっと悩まされたエラーなのですが、私の場合、StrokesPlusで登録したホットキーと「UWSC」(Windows自動化アプリ)というソフトに登録したホットキーが重複しているため発生していました。
 










会計ソフトランキングと選び方
会計ソフト比較解説
会計ソフトの選び方 & 会計ソフトの種類