目次:

  1. 概要
  2. はじめに
  3. 設定
  4. ジェスチャの定義
  5. アクションの作成
  6. アプリケーションの定義
  7. ホットキーの作成
  8. 無視リストウィンドウ
  9. アクションリスト
  10. 大域Lua
  11. 全てのLuaスクリプトで利用可能な変数
  12. アクション関数

[先頭に戻る]    概要:

StrokesPlusはマウスを使ってジェスチャを描画したり、マウスやキーボードのボタン修飾子(キー)の組合せを押したりする事を切っ掛けにして、Windowsやプログラム上での操作を自動化する為に作られたマウスジェスチャ認識プログラムです。

マウスジェスチャやボタン修飾子の組合せ、或いはその両方の何れを使う場合でも、予め決められたストロークボタンを押す事でその認識が開始されます。デフォルトでは、ストロークボタンはマウスの右ボタンに割り当てられています。操作の流れとしてはストロークボタンを押したまま、ジェスチャを描くかマウス/キーボード修飾子の組合せを押し、その後ストロークボタンを離します。このジェスチャが認識されて保存されているものと合致すれば、結びつけられた一連の操作(アクション)が実行されます。

下の図1では文字Rのジェスチャを認識させています。まず右マウスボタンを押しながらRを描いた後、ボタンを離します。この例でジェスチャRのアクションスクリプトは、Windowsの"ファイル名を指定して実行"ダイアログを開いて"notepad"を入力し(図2)、Enterキーを押した後暫く待機(メモ帳が起動)、続けて"hello world"と入力した後ALTキーを押しながら"H"キーを押し(メモ帳のヘルプメニューを開く)、最後に"A"キーを押してメモ帳のバージョン情報を表示します(図3)。

図1

図2


図3


マウスジェスチャソフトの機能として一般的なものは、ウィンドウの最小/最大化や、ウェブページの更新、プログラムの終了といったWindowsでの有り触れた操作ですが、StrokesPlusを使用すればスクリプトによってあなたの想像力の及ぶ限り生産性を向上させる事が出来ます!


[先頭に戻る]    はじめに:

StrokesPlusには予め設定されたジェスチャと、事前定義されたいくつかの一般的なアクションが搭載されています。StrokesPlusを使い始める前に、一度タスクバーの時計付近にあるStrokesPlusアイコンを右クリックしてみて下さい(図4)。

図4


この右クリックメニューでは次の事が行えます:

  1. トレーニングモードへ移行(StrokesPlusアイコンを中央クリックしても同じ)
  2. ストロークボタンの変更
  3. ジェスチャの軌跡を画面上に表示するかどうかの切替え
  4. ストロークプラスの無効化(StrokesPlusアイコンを左クリック又はCtrl+Shift+Win+Zを押しても同じ)
  5. 無視リストウィンドウを開く
  6. アクションウィンドウを開く(StrokesPlusアイコンを左ダブルクリックしても同じ)
  7. 設定ウィンドウを開く(StrokesPlusアイコンを中央ダブルクリックしても同じ)
  8. StrokesPlus.xmlの暗号化、及び設定ウィンドウのアクセス制限用のパスワードの設定/変更
  9. StrokesPlus.xmlから設定データを再読み込み
  10. このヘルプページを開く
  11. StrokesPlusを終了(Ctrl+Shift+Win+Endを押しても同じ)

[先頭に戻る]    設定:

図5


図5はStrokesPlusの設定ウィンドウで、ここでStrokesPlusの機能を思い通りに変更する事が出来ます。

ストロークボタン
ジェスチャ開始の切っ掛けとして使用するマウスボタン。

無視キー
このキーを押している間はStrokesPlusが無効になるので、ストロークボタンを押してもジェスチャとして認識されません。これはストロークボタンの操作を要求する他のアプリケーションやWindowsでの作業を行う際に助けとなるでしょう。

キャンセル遅延時間
これはStrokesPlusがジェスチャを認識する為に待機する時間です(タイムアウト値)。例えばWindowsのエクスプローラで複数のファイルを選択しようとして右クリックしてドラッグすれば、ストロークボタン(つまりマウス右ボタン)を離した瞬間にStrokesPlusはジェスチャを認識して結びつけられたアクションを探して実行しようとします。このような状況下でジェスチャの認識を停止させたい場合、単にストロークボタンを押したままマウスを動かすのを止めます。そのままキャンセル遅延時間として設定した時間が経過すれば、StrokesPlusはマウスとキーボードイベントの認識を止め、発生したマウス/キーボードイベントを再生成します。この場合、マウスカーソルはジェスチャ認識開始位置にまで巻き戻され、右クリックメッセージを送信し、キャンセル時に認識していたジェスチャと同じ軌跡を辿るようにマウス移動イベントが発生します。その為あたかもStrokesPlusが実行されていないように(或いは無視キーを押したまま右クリックした時のように)、エクスプローラで右クリックして複数のファイルをドラッグ選択したのと同じ通常のWindows処理を行えます。

Synapticsタッチパッド
Synapticsタッチパッドとそのソフトウェアが検出されていれば、ジェスチャの認識に1指(タップ&ホールド)、2指、3指のタップ移動が使用できるように設定できます。"カーソル移動感度"はタッチパッド上の軌跡と連動して動作するマウスポインタの移動速度を制御します。これは5%以上の値を指定します。"1指移動時の閾値"はタッチパッドが移動ジェスチャとして認識しない動作単位を指定します(つまりタッチパッドに少し触れただけでマウス移動と認識されないようにする捨て移動値です)。"1指ホールド遅延"はS+がジェスチャとして認識を開始する為に、1指タップホールドを待機する時間です。"統合を無効化"チェックボックスはS+がSynapticsインターフェースを内部的に読み込むかどうかを指定します。

ストローク表示
これらのオプション項目では画面上へのジェスチャ軌跡の描画方法を設定できます。"色を選択..."はジェスチャ軌跡の描画線の色を指定します。"幅"は描画線の太さを指定します。"最小区切り幅"はジェスチャとして認識する最小単位幅で、S+がジェスチャストロークの一部が描かれたと認識する最短距離を指定します。"長さ"はStrokesPlusがジェスチャを描画する(ジェスチャ軌跡)最大長を設定します。これは実際にジェスチャが描かれる長さでは無く、画面上に描画される軌跡の長さを意味します。"透明度"は描画されるジェスチャ軌跡の透過度を表し、1は殆ど透明、255は不透明(ソリッド)になります。"表示"はジェスチャ軌跡を画面上に表示するかどうかを設定します。

高度 / 試験的* オプション
これらの設定はStrokesPlus自身や他のアプリケーションに問題を引き起こす恐れがある為慎重に使用して下さい。

マッチ精度
StrokesPlusが比較用に使用するジェスチャ補間挿入の細かさを指定します。デフォルトは100で、この値を変える必要はありません。

マッチ確率
描かれたジェスチャと保存されたジェスチャとのマッチ確率の正確さを指定します。より高い値にするとジェスチャのマッチがより厳密になります。

積極的なメモリ管理
プログラム操作のより多くの局面で積極的にメモリをクリーンアップします。このオプションにチェックがあれば、StrokesPlus実行中に使用するメモリ量を出来るだけ最小に抑えるようにします。逆にチェックが無ければ、StrokesPlusが使用するメモリ管理をWindowsに任せます。(注) Windowsのメモリ管理は非常に大雑把で、別のプロセスのプログラムによって使用メモリの要求があり、利用可能なRAMが制限に達した場合に限り、メモリが整理されるようになっています。

サスペンド/復帰時にStrokesPlusを解除/再初期化 *
チェックがあれば、Windowsがサスペンドモード(例: シャットダウンメニューからスリープを選択した場合等)に入った時に、StrokesPlusはトレイからプログラムのアイコンを取り除き、マウスとキーボードのフックを解除し、Synaptics(タッチパッド)COMインターフェース(注)を破棄します。そしてWindowsの復帰時にはトレイアイコンを再生成し、マウスとキーボードのフックを再開、そしてSynaptics(タッチパッド)COMインターフェースを再生成します。

(注) Synaptics(タッチパッド)COMインターフェースは、"統合を無効化"オプションがチェックされていない場合に限り破棄/再初期化されます。

新規ジェスチャウィンドウを表示しない
アクションウィンドウで新規ボタンをクリックして新しいジェスチャを作成する時、確認用に表示されるウィンドウを表示しないようにします。

移動/修飾キー押下時にはキャンセル遅延時間をリセットする *
これにチェックが無い場合、設定したキャンセル遅延時間に達すればマウスやキーボードの状態に関係無くジェスチャ認識をキャンセルします。

ジェスチャ描画ウィンドウを常に最前面にする *
StrokesPlusがジェスチャ軌跡を描画する為の透過ウィンドウが、常に画面の最前面に来るようにします。このオプションは非力なシステム環境の助けとなり、Windows XP上でUI要素がちらつくのを抑えます。しかしながらStrokesPlusのジェスチャ描画ウィンドウが上にあって反応してしまった場合、他のプログラムで問題が発生するかも知れません。その為このオプションは試験的機能としています。

ジェスチャ描画ウィンドウを隠さない *
ジェスチャを描画していない時は、システムのパフォーマンスを妨げず、かつ新しいジェスチャが開始された時にちらつきやマウスラグが起らないように、ジェスチャ描画ウィンドウは他の全てのウィンドウの背後に送られます。このオプションのチェックを外せば、StrokesPlusはジェスチャ描画ウィンドウを完全に隠します("ジェスチャ描画ウィンドウを常に最前面にする"がチェックされていればこのオプションの効果はありません)。

マウスホイール中継を有効化 *
StrokesPlusはマウスカーソルの状態に拘わらず、全てのマウスホイールスクロールイベントを下にあるコントロールへ直接中継します。この機能を使えばアクティブでないコントロールやリスト、ウィンドウ等をスクロールしたり、上でマウスホイールを動かすだけでそれらを選択したり出来るようになります。

マウスホイールスクロール時に条件認識する *
StrokesPlusがマウスホイールの上下動のスクロールを条件認識(ストロークボタン押下時に限り有効)するようになります。この機能でホイールの動きに連動したアクションが設定できるようになり、例えばボリューム操作やタブ切換のような操作に利用できます。

縦マウスホイール動作スクリプトを許可 *
ここで説明されている縦マウスホイール動作スクリプトを有効にします。

横マウスホイール動作スクリプトを許可 *
ここで説明されている横マウスホイール動作スクリプトを有効にします。

定義済みアプリケーション上でのみ認識(広域アクション無し)
広域アクションは無視され、無視設定されたアプリケーション上では処理されず、マウス/タッチパッドはアクションタブ内で定義済みになっているアプリケーションのウィンドウ上に描いた場合に限り認識されます。これは基本的にStrokesPlusをホワイトリストモードに移行させます。

ストロークボタン押下時に修飾キーを認識する *
ストロークボタン押下後に発生する修飾キーの認識は元より、ストロークボタン押下時の状態も取得します。このため例えばストロークボタン押下前にCtrlキーが押されている(そして押したままにしてある)場合、Ctrl修飾キーはアクション定義の一部として認識されます。

アクション事後発動スクリプト(sp_after_action)を許可 *
ここで説明されている、アクションの後に実行される事後アクションスクリプトを有効にします。ある環境下でスクリプトエラーになる問題に対処する為、事後アクション機能用の処理を他のものと切り分けています。そのためこの機能を使わないならチェックを外しておく方がより効率的になります。

ストロークボタン押上時発動スクリプト(sp_after_release)を許可 *
ここで説明されているように、ストロークボタンを放した(押上)直後に実行されるアクションスクリプトを有効にします。ストロークボタンが放されれば常に呼出される関数を大域Lua内で定義することが出来ます。

中央ボタンのクリックスクリプト(sp_middle_mouse_up)を許可 *
ここで説明されている中央ボタンのクリックスクリプトを有効にします。

X1拡張ボタンのクリックスクリプト(sp_x1_mouse_up)を許可 *
ここで説明されているX1拡張ボタンクリックスクリプトsp_x1_mouse_up()を有効にします。

X2拡張ボタンのクリックスクリプト(sp_x2_mouse_up)を許可 *
ここで説明されているX2拡張ボタンクリックスクリプトsp_x2_mouse_up()を有効にします。

カーソルフラグをチェックする *
S+がカーソルフラグをチェックして、マウスの認識を行うかどうかを決定します。マウスカーソルを使ってトリッキーな処理を行うプログラムを使用していてS+がジェスチャを認識できない場合、このオプションのチェックを外してみて下さい。

ジェスチャのマッチが無い場合はそのまま中継する *
大域及び個別アプリケーション用のアクションにマッチしないジェスチャの組み合わせはそのまま他のアプリケーションへ中継します。修飾子やマウスホイールにより発動されるアクションについては中継されません。

ジェスチャのマッチが無い場合は音声を鳴らす
描いたジェスチャが存在しないか、定義済みアクションとマッチしない場合は音声を鳴らします。

音声
マッチするジェスチャが無い場合に再生するWAVファイルを指定します。空の場合はWindowsの一般警告音が再生されます。

図5



[先頭に戻る]    ジェスチャの定義:

StrokesPlusには予め定義済みのジェスチャが多数用意されていますが、独自に作成したい場合はStrokesPlusアイコンの右クリックメニューから"トレーニングモード"に移行する事でジェスチャを簡単に定義する事が出来ます。また、このモードでは既存ジェスチャの練習も行う事が出来ます。例えばジェスチャとして文字"R"を画面上に描いた時、事前定義されている"R"のジェスチャと違ったものであったなら、StrokesPlusはそれをジェスチャ"R"として認識しない可能性があります。トレーニングモードに移行して"R"を描くと、図6のようなウィンドウが表示されます。StrokesPlusに保存された定義済みジェスチャの中に、認識されたジェスチャと一致するものがあれば、テキストボックスにその名前が表示されます。StrokesPlusが意図するものと違うジェスチャ認識をした場合、このテキストボックスに正しいジェスチャ名(訳注)を入力して"保存"をクリックして下さい。そうすればジェスチャ名と結びつけられたジェスチャのポイント集合パターンにジェスチャとして先程描画した軌跡が追加されます。ジェスチャとに結びつけられたポイント集合パターンの数が多ければ、それだけStrokesPlusの認識精度が上がる可能性があります。

勿論、自分で描いた"R"が定義済みのものと余りにかけ離れていたなら、StrokesPlusがその軌跡の"R"をより素早く認識できるように、アクションウィンドウから既存のジェスチャ"R"を削除して、この新しいジェスチャポイント集合パターンを再生成する事が最良の方法となります。大抵のジェスチャにはポイント集合パターンが1つあれば事足りますが、その一方で"R"や"B"のように図形的によく似た文字認識の場合は、それぞれの文字用に数種類のポイント集合パターンが必要になります。

図6



(訳注) StrokesPlusは日本語を含むマルチバイト文字に正式対応していない為、ジェスチャ名には必ず半角英数文字を使用するようにして下さい


[先頭に戻る]    アクションの作成:

アクションはStrokesPlusに必要不可欠な要素です。アクションとはジェスチャ認識が完了した時に、StrokesPlustが処理する一連の作業(Windowsやプログラムの操作等)の事です。

ジェスチャとしての基準が全て満たされたなら、それに結びつけられたアクションが発動されます。この基準にはジェスチャそのものとマウス修飾子、そしてキー修飾子の組合せが含まれます。一回のジェスチャ認識で、これらの中のひとつだけがStrokesPlusによって選択されます。例えばアクションのジェスチャとして"左ボタン"修飾子だけ(つまりマウスによるジェスチャやキーボード修飾子無し)が定義されてあったとすれば、ストロークボタン(デフォルトではマウス右ボタン)を押しながら左マウスボタンを押した後、ストロークボタンを離せば結びつけられたアクションが実行されます。これは簡単な作業なので頻繁に利用するタスク…例えばブラウザ上で新しいタブでリンクを開く動作などのアクションと結びつければ便利でしょう。同じように、マウスホイールの上移動でボリュームを増加するアクションを定義したりする事が出来ます。

マウスのボタン数には限りがあるので、より多くのジェスチャを持とうとすれば、必然的に画面にマウスで簡単な軌跡を描く形式のジェスチャが必要となるでしょう。修飾子(マウス/キーボードボタン)はジェスチャ作業中にずっと押し続けている必要は無く、ストロークボタン押下後に一度だけ押せば大丈夫です。そのためストロークボタンを押してジェスチャ描画を開始した後、ストロークボタンを離す前にCtrlキーを一回だけ押し、ストロークボタンを押しながらジェスチャを描けば、Ctrl+ジェスチャ描画として認識され、これに結びつけられたアクションが存在すればそのLuaスクリプトがStrokesPlusによって呼び出されます。

設定タブの"ストロークボタン押下時に修飾キーを認識する *"にチェックがあれば、ストロークボタンを押したのと同時、またはストロークボタン押下後から押上までの間、或いはその両方において修飾子キーが確認されます。この設定を有効にすることによって同じジェスチャと修飾子の設定で2つのアクションを持つことができ、そしてこの2の違いは修飾子の押されるタイミングに依存することになります。これで例えば右マウスボタン(ストロークボタン)と一緒に左マウスボタンを押した場合のアクション実行と、右マウスボタンの押下後(押したまま)に続けて左マウスボタンを押した場合のアクション実行を明確に分けるようなロッカージェスチャ設定を行う事が出来ます。

"利用可能なアクション"ドロップダウンにはLuaスクリプトで利用できる全てのアクション関数/変数のリストが表示されます。対象のアクションを選択して"情報"ボタンをクリックすれば、そのアクションについての解説ウィンドウがポップアップします。"挿入"ボタンは"Luaスクリプト"テキストボックス内のカーソル位置に選択したアクションのスニペット(コード例)を貼り付けます。

"自動保存"チェックボックスではアクションタブ内にある左ペインのアクションリストアイテムをクリックして別のアクション設定へ切り替えたりアクションタブを閉じた時に、変更内容を自動的に保存するかどうかを決定します。このチェックボックスにチェックが無ければ、アクション設定を切り替えたりアクションタブを閉じる前に"適用"をクリックする必要があります。さもなければ変更内容が失われます。

変数アクションはStorokesPlusがLuaに対して用意した変数とアクションになります。Luaスクリプト言語の基本的な構文については、ユーザーが各自にGoogle等の検索エンジンで"Lua リファレンスマニュアル"、"Lua プログラミング 入門"あたりの用語を使って検索・参照して下さい。

図7



[先頭に戻る]    アプリケーションの定義:

"大域アクション"はアプリケーションがマウスカーソルの下にあるか否かに拘わらず発生するアクションです(次の項で説明する無視リストで設定されているものを除く)。これとは別に、ウェブブラウザのような特定のアプリケーションだけに完全に独立したジェスチャ設定を持たせたいことがあります。これを行うには"アプリ追加"ボタンを押して名前を入力(訳注)し、OKをクリックして新たにアプリケーション設定を作成します。するとアクションタブ左ペインに入力した名前のアイテムが作成されます。このアイテムツリーのルートにはアプリケーション特定用のフィールドが多数あり、他にアプリケーションやアプリケーションの一部を特定する為に使用される照準アイコンの付いたウィンドウ検索ボックスも備わっています。

アプリケーションの特定用フィールドは最低でも1つは埋める必要がありますが、通常はプログラム全体に常時マッチする"ファイル名"を指定しておけば充分でしょう。ウィンドウ検索の照準アイコンを使用すれば、フィールドの殆ど全てに値が代入されます。これらフィールドをそのままにしておけば、非常に限定された範囲のアプリケーション定義を作成することが出来ます。これは例えばアプリケーションの特定領域の部品だけに限定したり、ウィンドウ検索ツール使用時のアプリケーションタイトルと正確に一致するものだけを対象としたり出来ることを意味します。目的とするウィンドウの特定に影響を及ぼすようなフィールドについてよく分からない場合は、先程説明したようにファイル名フィールドを除く全てのフィールドを空にしておいた方が良いでしょう。

"パターン"フィールドではマッチに正規表現(Boost.Regexライブラリ準拠)を使用することが出来ます。これは広範囲にマッチさせたり、かなり限定した種類の状態のアプリケーションを定義する助けとなります。

ジェスチャの認識が完了すれば、StrokesPlusはまず始めにアプリケーション固有設定の中にマッチするものがあるかどうかを確認します。マッチが見つからなければ、"このアプリケーション独自のアクションだけを使用する(大域は使用しない)"にチェックが無い限り大域アクションにマッチするものが無いか確認されます。

(訳注) StrokesPlusは日本語を含むマルチバイト文字に正式対応していない為、アプリ名には必ず半角英数文字を使用するようにして下さい

図8



[先頭に戻る]    ホットキーの作成:

Luaスクリプトの実行にホットキーを割り当てることも出来ます。この機能はマウスに関連していないことを除いてアクションと変わりありません。これらのスクリプトはそのままで問題なく実行でき、gsx、gsy等のような拡張変数は使用できません。また、sp_before_actionとsp_after_action関数は使用しないで下さい。

(訳注) ジェスチャ名・アプリ名と同じく、ホットキー名には必ず半角英数文字を使用するようにして下さい

図9



[先頭に戻る]    無視リストウィンドウ:

"無視リストウィンドウ"の左ペインにある無視リスト内で設定されているウィンドウ上でストロークボタンが押された場合、StrokesPlusはそのジェスチャ認識を解除して無視します。無視リストにウィンドウを追加するには"追加"ボタンを押して名前(訳注)を入力し、OKをクリックすれば無視リスト内に入力した名前のアイテムが作成されます。このアイテムにはアプリケーション特定用のフィールドが多数あり、他にアプリケーションやアプリケーションの一部を特定する為に使用される照準アイコンの付いたウィンドウ検索ボックスも備わっています。

アプリケーション特定用フィールドは最低でも1つ埋める必要がありますが、通常はプログラム全体に常時マッチする"ファイル名"を指定しておけば良いでしょう。ウィンドウ検索の照準アイコンを使用すれば、フィールドの殆ど全てに値が代入されます。これらのフィールドをそのままにしておけば、かなり範囲を限定してアプリケーションを定義することが出来ます。これは例えばアプリケーションの特定領域の部品だけに限定したり、ウィンドウ検索ツール使用時のアプリケーションタイトルと正確に一致するものだけを対象としたり出来ることを意味します。対象となるウィンドウの特定に影響を及ぼすようなフィールドについてよく分からない場合は、上で説明したようにファイル名フィールドを除く全てのフィールドを空にしておいた方が良いでしょう。

"パターン"フィールドでは正規表現(Boost.Regexライブラリ準拠)を使用することが出来ます。これは広範囲にマッチさせたり、かなり限定した種類の状態のアプリケーションを定義する助けとなります。

"このアプリケーションが活性化中はS+を無効にする"にチェックがあれば、無視アプリケーションのウィンドウを活性化(最前面に)した場合、マウスとキーボードのフックを完全に無効化します。この設定はフルスクリーンとなるゲームのプレイ中にS+を無効にしたい時などに便利です。単にゲームウィンドウを無視したのではストロークボタンが押される毎にS+がそのウィンドウを無視するかどうか確認するため、S+がゲームへマウスイベントを転送する前にごく僅かながら遅延が発生してしまいます。マシン性能を要求するアプリケーション、特にゲームなどではS+をはっきりと無効化しておく方が良いでしょう。このオプションでS+が自動的に無効化された場合、再び有効化させるタイミングを測る手段が無い為、手動でS+を有効化しなければならない事に注意して下さい。

"無視リストに無いアプリケーションがあればS+を有効化する"にチェックがあれば、無視ウィンドウリスト内に"無い"ウィンドウがアクティブになれば、S+自身を有効化させます。この設定は手動でS+を無効化していた場合にも適用されます。この設定の用途は無視対象となるアプリケーションではS+を無効化し、そのアプリケーションを離れればS+を自動的に再使用出来るようにすることですが、この挙動は手動でS+を無効化した場合の設定さえも上書きしてしまう為、決して万人に向けて用意されているものではありません。

"自動保存"にチェックが無い場合、このウィンドウ内で変更された全ての変更は"適用"を押さない限り失われてしまうことに注意して下さい。

(訳注) StrokesPlusは日本語を含むマルチバイト文字に正式対応していない為、無視ウィンドウ名には必ず半角英数文字を使用するようにして下さい

図10



[先頭に戻る]    アクションリスト:

このタブには全ての定義済み・有効アクションのリストが表示されます。

図11




[先頭に戻る]    大域Lua:

このタブにはStrokesPlus.luaファイルの内容が表示されます。このファイルでは全てのアクションによって使用される独自関数や変数を定義することが出来ます。
(訳注) StrokesPlusは日本語を含むマルチバイト文字に正式対応していない為、例えコメント文であっても日本語を使用した場合はこのウィンドウ内で文字化けします。

図12




[先頭に戻る]    全てのLuaスクリプトで利用可能な変数:

以下の変数はジェスチャ認識完了時に自動的に代入されます。これらの変数はアクションが適用されるべきウィンドウを識別する為に多数のアクション関数(次の項で解説)によって頻繁に使用されます。


sp_gesture_name (別名 - gnm): 文字列 … 描画したジェスチャ名

sp_gesture_start_x (別名 - gsx): 整数 … ジェスチャ開始位置のX座標
sp_gesture_start_y (別名 - gsy): 整数 … ジェスチャ開始位置のY座標

sp_gesture_end_x (別名 - gex): 整数 … ジェスチャ終了位置のX座標
sp_gesture_end_y (別名 - gey): 整数 … ジェスチャ終了位置のY座標

sp_wheel_delta (別名 - gwd): 整数 … マウスホイールのスクロール回転量(デルタ値 … 正または負の数値)で、標準的なマウスホイールでは一刻み値につき120 

sp_app_name (別名 - gapp): 文字列 … マッチしたアプリケーション名、または"Global Actions" (若しくはLanguage.xmlの訳語 … 大域アクション) 
sp_action_name (別名 - gact): 文字列 … マッチしたアクション名 

gbl: 整数 … 左境界座標 (描画ジェスチャの最左端X座標)

gbt: 整数 … 上境界座標 (描画ジェスチャの最上端Y座標)

gbr: 整数 … 右境界座標 (描画ジェスチャの最右端X座標)

gbb: 整数 … 下境界座標 (描画ジェスチャの最下端Y座標)


更に直接DLL呼び出しを行う事によりLuaスクリプトでalien.corealien.structが使用できるようになります。次のようなインクルード文は必要ありません:

require "alien"

…システムパスの何処かにalien対象となるDLLが存在していなければ、(ネット上で見かける多数のサンプルスクリプトと同様)Luaスクリプトでエラーとなりますが、これは呼び出して使う側が配慮しておくべき事案です…そのためこの機能は自己責任となります。

user32.dllを直接呼び出してメッセージボックスを表示するサンプルLuaスクリプト(組込のacMessageBox()関数を使わず、直接呼び出しています):

   local alien = alien.core
   local mb = alien.load("user32.dll")
   local messagebox = mb.MessageBoxA
   messagebox:types{ ret = 'long', abi = 'stdcall', 'long', 'pointer', 'string', 'long' }
   test = "test"
   messagebox(0, test, "test2", 0)

スクリプトや呼び出し定義内に何らかのエラーがあった場合、DLLの直接呼出はS+/Luaエンジンに重大なクラッシュを引き起こす恐れがあるので、この機能の使用は自己責任である事に注意して下さい。スクリプトに問題があったりアクションを追加する前に確認作業をしたい場合(S+内ではrequire "alien"参照が抜かれていることに注意)は、Lua for Windowsをインストールしてそこでテストすることをお勧めします。

同様にStrokesPlus.exeと同じフォルダにある"StrokesPlus.lua"内で定義されている全ての変数や関数をインクルードすることも出来ます。StrokesPlus読み込み時(またはトレイメニューから"設定とLuaを再読込"を選択時)、StrokesPlus.lua内の全てが実行・維持されます。例えば独自のLua関数を作成してそれを全てのアクションから呼び出す事が出来るようにしたいなら、それらをStrokesPlus.luaに格納しておきます。或いはここにアクション間で共有できる大域変数をいくつか作成しておけば、同様に宣言/初期化されます。

StrokesPlus v1.9.7からは全てのアクションスクリプトが発動される前に、StrokesPlus.lua内で予め定義しておいた特定のLuaコードを実行できるようになりました。例えば、全てのアクションスクリプトを実行する前にacActivateWindowを呼び出してウィンドウを有効化しておくことが出来るようになります。

この機能を利用するには、S+が処理出来るように既定のテンプレートを使用して関数を定義しなければなりません:

function sp_before_action(gnm, gsx, gsy, gex, gey, gwd, gapp, gact)
--ここにコードを挿入
end

(注) sp_before_actionはローカル変数(gnm, gsx, gsy等)がセットされてから呼び出される為、必要であればコード内から自由に使用することが出来ます。

StrokesPlus v1.9.8からは全てのアクションスクリプトが発動した後に、StrokesPlus.lua内で予め定義しておいた特定のLuaコードを実行できるようになりました。しかしながらこの機能を使用するにはまず始めに設定タブ内にある"事後アクションスクリプトを許可 *"オプションを有効にしておかなければなりません。オプションとなっていることから分かるように、この機能はいくつかの環境下ではスクリプトエラーを引き起こす可能性があります。そのようなエラーを再現してこの問題を修正することは困難な為、この機能をオプションにしてエラーにならない環境用に用意しています。

この機能を利用するには、S+が処理出来るように既定のテンプレートを使用して関数を定義しなければなりません:

function sp_after_action(gnm, gsx, gsy, gex, gey, gwd, gapp, gact)
--ここにコードを挿入
end

StrokesPlus v2.4.7からはLuaステート1が初期化された時に、StrokesPlus.lua内で予め定義しておいた特定のLuaコードを実行できるようになりました。例えば、S+開始時に"acToggleTrayIcon(-1)"(S+をトレイアイコンに隠す)を呼び出すようなことが行えます。


この機能を利用するには、S+が処理出来るように既定のテンプレートを使用して関数を定義しなければなりません:

function sp_init()
--ここにコードを挿入
end

sp_initはステートが無い/非持続性コードだけが使用されるように、Luaステート1によってだけ呼び出されることに注意して下さい。

StrokesPlus v2.6.2からはストロークボタンが離された後(S+がマウスジェスチャを認識した後)、StrokesPlus.lua内で予め定義しておいた特定のLuaコードを実行できるようになりました。しかしながらこの機能を利用するにはまず始めに設定タブ内にある"キャプチャボタン押上後アクションスクリプトを許可 *"オプションを有効にしておかなければなりません。

この機能を利用するには、S+が処理出来るように既定のテンプレートを使用して関数を定義しなければなりません:

function sp_after_release()
--ここにコードを挿入
end

StrokesPlus v2.7.3から(2.8.0で関数テンプレート改訂)は(中央ボタンがストロークボタンでは無い場合に)中央マウスボタンクリック時に、StrokesPlus.lua内で予め定義しておいた特定のLuaコードを実行できるようになりました。しかしながらこの機能を利用するにはまず始めに設定タブ内にある"中央ボタンのクリックスクリプトを許可 *"オプションを有効にしておかなければなりません。

この機能を利用するには、S+が処理出来るように既定のテンプレートを使用して関数を定義しなければなりません:

function sp_middle_mouse_up(x, y, fwKeys)
--ここにコードを挿入
-- x = マウス中央ボタン押下時のマウスポインタX座標
-- y = マウス中央ボタン押下時のマウスポインタY座標
-- fwKeys = マウス中央ボタン押下時のキー状態
end

中央ボタンクリック時にはマウスカーソル位置で標準無視ウィンドウチェックルーチンが発生することに注意して下さい。またこの機能は"このアプリケーション独自のアクションだけを使用する(大域は使用しない)"オプションが有効であればその規則に準拠します。

StrokesPlus v2.7.9から以下のアクションが StrokesPlus.lua で定義されていれば、マウスホイールスクロール時に特定のLuaコードを実行できるようになりました。しかしながらこの機能を利用するには設定画面内にあるマウスホイール動作スクリプトを許可 *オプションを有効にしておかなければなりません。


以上に加えて実行時に発動される関数を以下のテンプレートを使って定義しておかなければなりません:

function sp_wheel_tick(control, wParam, lParam, x, y, delta)
--ここにコードを挿入
-- control = マウスポインタ直下にあるコントロールへのハンドル
-- wParam = 使用の為に分解されるか、そのまま中継されるマウスホイールイベントの事前作成されたwParam
-- lParam = 上と同様のlParam
-- x = マウスホイールが動かされた場所のマウスポインタX座標
-- y = マウスホイールが動かされた場所のマウスポインタY座標
-- delta = マウスホイールスクロールデルタ値で、通常はマウスホイールを上に一刻みして120、下に一刻みして-120になります
end

マウスホイールが動かされたマウスポインタの場所では無視ウィンドウチェックが行われる事に注意して下さい。この機能はもし有効であれば定義済みアプリケーション上でのみ認識(大域アクション無し)の規則にも従います。

StrokesPlus v2.8.0からは以下のアクションが StrokesPlus.lua で定義されていれば、マウスホイールの横スクロールやX1・X2マウスボタンのクリック時に特定のLuaコードを実行できるようになりました(v2.8.2からは左・右クリックを追加)。しかしながらこの機能を利用するには設定画面内にある対応した"横マウスホイール動作スクリプトを許可 *""X1拡張ボタンのクリックスクリプト(sp_x1_mouse_up)を許可 *""X2拡張ボタンのクリックスクリプト(sp_x2_mouse_up)を許可 *"オプションを有効にしておかなければなりません。

以上に加えて実行時に発動される関数を以下のテンプレートを使って定義しておかなければなりません:

水平マウスホイール:

function sp_h_wheel_tick(control, wParam, lParam, x, y, delta)
--ここにコードを挿入
-- control = マウスポインタ直下にあるコントロールへのハンドル
-- wParam = 使用の為に分解されるか、そのまま中継されるマウスホイールイベントの事前作成されたwParam
-- lParam = 上と同様のlParam
-- x = マウスホイールが動かされた場所のマウスポインタX座標
-- y = マウスホイールが動かされた場所のマウスポインタY座標
-- delta = マウスホイールスクロールデルタ値で、通常はマウスホイールを左に一刻みして120、右に一刻みして-120になります
end

X1ボタンクリック:

function sp_x1_mouse_up(x, y, fwKeys)
-- x = X1ボタンがクリックされた場所のマウスポインタX座標
-- y = X1ボタンがクリックされた場所のマウスポインタY座標
-- fwKeys = X1ボタン押下時のキー状態
end

X2ボタンクリック:

function sp_x2_mouse_up(x, y, fwKeys)
-- x = X2ボタンがクリックされた場所のマウスポインタX座標
-- y = X2ボタンがクリックされた場所のマウスポインタY座標
-- fwKeys = X2ボタン押下時のキー状態
end

左クリック:

function sp_left_mouse_up(x, y, fwKeys)
-- x = マウス左ボタンがクリックされた場所のマウスポインタX座標
-- y = マウス左ボタンがクリックされた場所のマウスポインタY座標
-- fwKeys = マウス左ボタン押下時のキー状態
end

右クリック:

function sp_right_mouse_up(x, y, fwKeys)
-- x = マウス右ボタンがクリックされた場所のマウスポインタX座標
-- y = マウス右ボタンがクリックされた場所のマウスポインタY座標
-- fwKeys = マウス右ボタン押下時のキー状態
end

マウスホイールの横移動、左/右/X1/X2ボタン押下箇所の無視ウィンドウチェックが行われる事に注意して下さい。この機能はもし有効であれば定義済みアプリケーション上でのみ認識(大域アクション無し)の規則にも従います


[先頭に戻る]    アクション関数:

ウィンドウ位置:

acFindWindow
acFindWindowByTitleRegex
acGetAllWindows
acGetOwnerWindowByPoint
acGetParentWindowByPoint
acGetWindowByPoint
acGetForegroundWindow
acGetDesktopWindow

ウィンドウの状態:

acActivateWindow
acPauseResumeThreadList
acSetProcessPriority
acTerminateProcess
acCloseApplication

ウィンドウの配置:

acMoveWindow
acMinimizeWindow
acRestoreWindow
acMaximizeWindow
acMaximizeOrRestoreWindow
acTileWindows

ウィンドウサイズ:

acGetWindowLeft
acGetWindowTop
acGetWindowRight
acGetWindowBottom
acSetWindowSize

ウィンドウ順序:

acSetTopmost
acClearTopmost
acToggleTopmost
acSendWindowToBottom
acPreviousApplication
acNextApplication

透明度と色:

acGetWindowTransparency
acGetWindowColorKeyR
acGetWindowColorKeyG
acGetWindowColorKeyB
acSetWindowColorKey
acSetWindowTransparencyAndColorKey
acSetWindowTransparency

その他のウィンドウ操作:

acGetWindowTitle
acGetClassName
acGetControlID
acGetExecutableName

モニタ関連:

acCenterWindowToScreen
acClipWindowToScreen
acFitWindowToScreen
acMaximizeToAllScreens
acGetMonitorFromPoint
acGetMonitorName
acSendWindowToPreviousMonitor
acSendWindowToMonitorByName
acSendWindowToMonitorByHandle
acSendWindowToNextMonitor
acGetMonitorFromName
acGetMonitorBottom
acGetMonitorTop
acGetMonitorLeft
acGetMonitorRight

キーボード操作:

acSendKeys
acSendKeyDown
acSendKeyUp
acSendWinDown
acSendWinUp
acSendControlDown
acSendControlUp
acSendAltDown
acSendAltUp
acSendShiftDown
acSendShiftUp

マウス操作:

acGetMouseLocationX
acGetMouseLocationY
acMouseMove
acMouseClick
acGetMouseCursorType
acAutoHideMouseCursor
acHideMouseCursor
acShowMouseCursor

クリップボード操作:

acGetClipboardText
acSetClipboardText

オーディオ操作:

acSetVolume
acGetVolume
acToggleMute
acGetMute
acSetMute
acPlaySound

ユーティリティ:

acConsumePhysicalInput
acDelay
acGetSystemMetrics
acGetPixelRByPoint
acGetPixelGByPoint
acGetPixelBByPoint
acMessageBox
acDisplayBalloonTip
acDisplayText
acKillDisplayText
acGetProcessIDFromPattern
acGetWindowFromProcessID
acIsImmersiveProcess
acGetFileVersion
acGetFileProductVersion
acInputBox
acRunProgram
acShellExecute
acLockWindows
acGetNumber
acSetNumber


Windowsレジストリ操作:

acRegistryCreateKey
acRegistryDeleteKey
acRegistryDeleteValue
acRegistryGetString
acRegistrySetString
acRegistryGetNumber
acRegistrySetNumber


Windowsメッセージ:

acSendMessage
acPostMessage

StrokesPlus制御:

acShowSettings
acShowActions
acShowHotkeys
acShowIgnoreList
acShowPrefs
acShowAbout
acDisable
acDisableNext
acDisableCapture
acEnableCapture
acReloadConfig
acRelayGesture
acToggleTrayIcon
acExit


acActivateWindow(hwndTarget, x, y, method)
引数: hwndTarget: 有効化するウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: 有効化するウィンドウ内のX座標
  y: 有効化するウィンドウ内のY座標
  method: ウィンドウを有効化する為に使用する方式: 0は標準、1はスレッド入力、2は一時的にAlt押下になります。まず始めに0(デフォルト)を使用し、それが動作しない場合に限り他の方法を使用するようにして下さい
戻値: 整数 (常に1)
解説: 指定した座標にあるウィンドウを有効化します


acAutoHideMouseCursor(hidetimer, rehidetimer)
引数: hidetimer: マウスカーソルを非表示にする迄のマウスイベント待機時間(㍉秒)
  rehidetimer: (他のアプリケーションによりカーソルが再表示された場合)マウスカーソルを再び非表示にするまでの待機時間(㍉秒)
戻値: 整数 (常に1)
解説: 指定したタイマーに従って標準マウスカーソルを自動で非表示にします


acCenterWindowToScreen(hwndTarget, x, y, useworkarea)
引数: hwndTarget: 対象となるウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
  useworkarea: (0:偽、1:真)タスクバー領域を除外
戻値: 整数 (常に1)
解説: ウィンドウを画面の中央に配置します


acClipWindowToScreen(hwndTarget, x, y, useworkarea)
引数: hwndTarget: 対象となるウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
  useworkarea: (0:偽、1:真)タスクバー領域を除外
戻値: 整数 (常に1)
解説: 指定したウィンドウが画面外に食み出ないように再配置します(ウィンドウのリサイズは行いません)


acClearTopmost(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定したウィンドウのTOPMOST(最前面)フラグをクリアします


acCloseApplication(hwndTarget, x, y)
引数: hwndTarget: 終了させるウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: 閉じようとするウィンドウ内のX座標
  y: 閉じようとするウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定した座標にあるウィンドウを閉じます(終了させます)

acConsumePhysicalInput(value)
引数: value: 物理入力を全て破棄するかどうかのフラグ、0=偽、1=真
戻値: 整数 (常に1)
解説: S+が物理入力(マウスとキーボード)の全てを破棄するかどうかを指定します。これはマウスやキーボードを自動操作するスクリプト実行中に、如何なる物理入力による妨害も受けたくないような場合に便利です。しかし一旦破棄設定(真=1)にしてしまえば、再び物理入力を受け付ける為に0を渡して有効にしない限りコンピュータが使用できなくなる可能性があります!

acDelay(duration)
引数: duration: (㍉秒) 一時停止する時間
戻値: 整数 (常に1)
解説: 指定した遅延時間の間Luaスクリプトを一時停止します(Sleep(n))

acDisable()
戻値: 整数 (常に1)
解説: StrokesPlusを無効にします

acDisableCapture()
戻値: 整数 (常に1)
解説: acEnableCapture()が呼び出されるか、Luaが再読み込みされるまでマウスのキャプチャを無効にします

acDisableNext()
戻値: 整数 (常に1)
解説: 次のジェスチャのキャプチャを無効にします

acDisplayBalloonTip(title, message, icon)
引数: title: 表示するタイトル
  message: 表示するメッセージ
  icon: バルーンで表示するアイコン: 0=無し、1=情報、2=警告、3=エラー
戻値: 整数 (常に1)
解説: S+トレイアイコンの近くでバルーンチップを表示します。Windowsは一般的にバルーンチップが表示される頻度とタイミングを制限していて、そのためチップ表示後数秒のうちに再びこれを呼び出した場合は何も発生しない可能性があります。また、WinXPとWin7との間にはチップ表示に違いがあるように見えます

acDisplayText()
引数: message: 表示するテキスト
  font: 使用するフォント名
  size: テキストのサイズ
  red: テキスト色の赤値(RGB)
  green: テキスト色の緑値(RGB)
  blue: テキスト色の青値(RGB)
  duration: テキスト表示時間(㍉秒)
  x: 表示テキストの左上隅X座標
  y: 表示テキストの左上隅Y座標
戻値: 整数 (常に1)
解説: 指定したテキストを画面上に表示します

acEnableCapture()
戻値: 整数 (常に1)
解説: acDisableCapture()を呼び出して無効になっているマウスのキャプチャを再開します

acExit()
戻値: 整数 (常に1)
解説: StrokesPlusを終了します

acFindWindow(classname, title)
引数: classname: 検索するウィンドウのクラス名
  title: 検索するウィンドウのタイトル
戻値: 整数 - ウィンドウが見つかればそのハンドル、見つからなければ0
解説: クラスやタイトルを指定してマッチするウィンドウを検索します。何れかの引数を除外する場合はnilを指定して下さい。例えば acFindWindow("Winamp v1.x",nil) はWinampクラスを検索し、タイトルによる検索は無視されます。

acFindWindowByTitleRegex(titlepattern)
引数: titlepattern: ウィンドウタイトルの検索に使用する正規表現
戻値: 整数 - ウィンドウが見つかればそのハンドル、見つからなければ0
解説: 渡された正規表現にマッチするタイトルを持つ最初のウィンドウを検索します

acFitWindowToScreen(hwndTarget, x, y, useworkarea)
引数: hwndTarget: 対象となるウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
  useworkarea: (0:偽、1:真)タスクバー領域を除外
戻値: 整数 (常に1)
解説: 指定したウィンドウをメイン画面の大きさに合わせます

acGetAllWindows(toplevel)
引数: toplevel: 0なら全てのウィンドウハンドル(大量)のテーブルを返し、1なら最上位になるウィンドウのハンドルだけのテーブルを返します(推奨)
戻値: 整数 (常に1)
解説: 要求されたウィンドウハンドルが大域テーブル sp_all_windows に格納されます。このsp_all_windowsテーブルは定義する必要はありません。

acGetClassName(hwndTarget, x, y)
引数: hwndTarget: ウィンドウ又はコントロールのハンドル、nilを指定した場合はウィンドウ/コントロールの特定にxとyを使用します
  x: ウィンドウ又はコントロール内のX座標
  y: ウィンドウ又はコントロール内のY座標
戻値: 文字列
解説: 指定したウィンドウまたはコントロールのクラス名を取得します。座標(x,y)にあるコントロールのオーナーウィンドウを返す他のアクションと違い、これは座標で指定したウィンドウのコントロールそのものを返します。つまり、ボタン上の座標を指定したなら、ボタンのクラス名が返されます。コンテナ階層を手繰り上げたい場合、acGetOwnerWindowByPoint()やacGetParentWindowByPoint()を呼び出す事が出来ます

acGetClipboardText()
戻値: 文字列
解説: クリップボードにある現在のテキストを返します

acGetControlID(hwndTarget, x, y)
引数: hwndTarget: ウィンドウ又はコントロールのハンドル、nilを指定した場合はウィンドウ/コントロールの特定にxとyを使用します
  x: ウィンドウ又はコントロール内のX座標
  y: ウィンドウ又はコントロール内のY座標
戻値: 文字列
解説: 指定したコントロールのIDを取得します

acGetDesktopWindow()
戻値: 整数
解説: Windowsのデスクトップを表すデスクトップウィンドウのハンドルを返します

acGetExecutableName(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 文字列
解説: ウィンドウ自身のEXE(実行ファイル)名を取得します

acGetFileVersion(file, hwndTarget, x, y)
引数: file: ファイルへのパス。""(二重引用符で囲んだ空文字列)を指定すればhwndTarget、または座標(x,y)から割り出されたウィンドウのファイルが使用されます
  hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 文字列
解説: 指定したファイル、又はウィンドウ自身のファイルバージョンを取得します

acGetFileProductVersion(file, hwndTarget, x, y)
引数: file: ファイルへのパス。""(二重引用符で囲んだ空文字列)を指定すればhwndTarget、または座標(x,y)から割り出されたウィンドウのファイルが使用されます
  hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 文字列
解説: 指定したファイル、又はウィンドウ自身のプロダクトバージョンを取得します

acGetForegroundWindow()
戻値: 整数
解説: 現在アクティブである最前面(最上位)ウィンドウのハンドルを返します

acGetMonitorBottom(monitorhandle, useworkarea)
引数: monitorhandle: モニタのハンドル
  useworkarea: (0:偽、1:真) 真の場合はモニタ全領域でなく、作業領域(タスクバーとドックウィンドウを除外)が対象
戻値: 整数
解説: 指定したモニタの右下隅Y座標を返します

acGetMonitorFromName(monitorname)
引数: monitorname: モニタ名(逆スラッシュ\はエスケープする必要があります。例えば"\"は"\\"となり、"\\.\DISPLAY1"はLuaスクリプトでは"\\\\.\\DISPLAY1"と記述します)
戻値: 整数 (モニタハンドル)
解説: 指定したモニタのハンドルを取得します

acGetMonitorFromPoint(x, y)
引数: x: モニタ上のX座標
  y: モニタ上のY座標
戻値: 整数 (モニタハンドル)
解説: 座標(x,y)にあるモニタのハンドルを返します

acGetMonitorLeft(monitorhandle, useworkarea)
引数: monitorhandle: モニタのハンドル
  useworkarea: (0:偽、1:真) 真の場合はモニタ全領域でなく、作業領域(タスクバーとドックウィンドウを除外)が対象
戻値: 整数
解説: 指定したモニタの左上隅X座標を返します

acGetMonitorName(monitorhandle)
引数: monitorhandle: モニタのハンドル
戻値: 文字列
解説: モニタ名を返します

acGetMonitorRight(monitorhandle, useworkarea)
引数: monitorhandle: モニタのハンドル
  useworkarea: (0:偽、1:真) 真の場合はモニタ全領域でなく、作業領域(タスクバーとドックウィンドウを除外)が対象
戻値: 整数
解説: 指定したモニタの右下隅X座標を返します

acGetMonitorTop(monitorhandle, useworkarea)
引数: monitorhandle: モニタのハンドル
  useworkarea: (0:偽、1:真) 真の場合はモニタ全領域でなく、作業領域(タスクバーとドックウィンドウを除外)が対象
戻値: 整数
解説: 指定したモニタの左上隅Y座標を返します

acGetMouseCursorType()
戻値: 文字列 - 次のカーソル種類名の何れか: ARROW, IBEAM, WAIT, CROSS, UP, SIZENWSE, SIZENESW, SIZEWE, SIZENS, SIZEALL, NO, HAND, APPSTARTING, HELP, Unknown
解説: 現在のマウスカーソルの名前か、該当が無ければUnknown(不明)を返します

acGetMouseLocationX()
戻値: 整数
解説: 現在のマウス位置のX座標を返します

acGetMouseLocationY()
戻値: 整数
解説: 現在のマウス位置のY座標を返します

acGetMute()
戻値: 整数 - 1(ミュート)、0(ミュート無し)
解説: 主チャンネルのミュート状態を返します

acGetNumber()
戻値: 整数 - acSetNumber呼出しによってS+内に格納された値
解説: 以前にacSetNumber呼出しによってS+内に格納された値を返します

acGetOwnerWindowByPoint(x, y)
引数: x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (ウィンドウハンドル)
解説: 対象となるウィンドウが属するオーナー(祖先)ウィンドウのハンドルを返します

acGetParentWindowByPoint(x, y)
引数: x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (ウィンドウハンドル)
解説: 対象となるウィンドウが属する親ウィンドウのハンドルを返します

acGetPixelBByPoint(x, y)
引数: x: X座標
  y: Y座標
戻値: 整数 (0-255)
解説: 指定した座標の色の青値(B)を取得します

acGetPixelGByPoint(x, y)
引数: x: X座標
  y: Y座標
戻値: 整数 (0-255)
解説: 指定した座標の色の緑値(G)を取得します

acGetPixelRByPoint(x, y)
引数: x: X座標
  y: Y座標
戻値: 整数 (0-255)
解説: 指定した座標の色の赤値(R)を取得します

acGetProcessIDFromPattern(filepattern)
引数: filepattern: 名前又は検索する正規表現規則
戻値: 整数 - マッチがあればプロセスID、無ければ0
解説: 指定した検索規則にマッチした実行中のプロセスがあるかどうか調べます。検索規則には実行可能ファイルの名前か、ワイルドカード検索用の正規表現を使用する事が出来ます

acGetSystemMetrics(value)
引数: value: Win32仕様に基づく、取得するID(番号)
戻値: 整数 - Windowsによって返される値
解説: Windowsのシステム設定や画面構成についての情報を取得する為のGetSystemMetrics関数を直接呼び出します。参照: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724385.aspx

acGetVolume()
戻値: 整数 … 現在の音量(0~100)
解説: 主チャンネルの現在の音量を返します

acGetWindowBottom(hwndTarget, x, y)
引数: hwndTarget: 対象となるウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
戻値: 整数
解説: 指定したウィンドウの右下隅Y座標を取得します

acGetWindowByPoint(x, y)
引数: x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数
解説: 指定座標にあるウィンドウのハンドルを返します

acGetWindowColorKeyB(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (0-255)
解説: 指定したウィンドウの透明色キーの青(B)部分を取得します

acGetWindowColorKeyG(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (0-255)
解説: 指定したウィンドウの透明色キーの緑(G)部分を取得します

acGetWindowColorKeyR(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (0-255)
解説: 指定したウィンドウの透明色キーの赤(R)部分を取得します

acGetWindowFromProcessID(processID)
引数: processID: 最上位ウィンドウ検索用のプロセスID
戻値: 整数 - プロセスの最上位ウィンドウのハンドル、又は見つからなければnilが返ります
解説: 渡されたプロセスIDに属する最上位ウィンドウを探します。マッチが見つかればそのハンドル、見つからなければnilが返ります

acGetWindowLeft(hwndTarget, x, y)
引数: x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
戻値: 整数
解説: 指定したウィンドウの左上隅X座標を取得します

acGetWindowRight(hwndTarget, x, y)
引数: x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
戻値: 整数
解説: 指定したウィンドウの右下隅X座標を取得します

acGetWindowTitle(hwndTarget, x, y)
 引数:  hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 文字列 (ウィンドウタイトル)
解説: 指定したウィンドウのタイトルを返します

acGetWindowTop(hwndTarget, x, y)
引数: x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
戻値: 整数
解説: 指定したウィンドウの左上隅Y座標を取得します

acGetWindowTransparency(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (0-255)
解説: ウィンドウの透明度を取得します。0は透明、255は不透明を表します

acHideMouseCursor()
戻値: 整数 (常に1)
解説: 全ての標準マウスカーソルを非表示にします

acInputBox(title, message, default, delim)
引数: title: 入力ボックスのタイトルバーに表示する文字列
  message: 入力ボックスのフォーム上に表示する文字列
  default: テキストボックスにデフォルト値として入れておく文字列
  delim:  指定されていればデフォルトパラメータはこの区切記号で区切られ、ドロップダウンリストが作成されます
戻値: 文字列
解説: ユーザー入力を受け付けるウィンドウを表示します

acIsImmersiveProcess(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y:  ウィンドウ内のY座標
戻値:  整数 - ウィンドウが没入型で無ければ0,没入型であれば1
解説: プロセスが持つウィンドウが没入型(Windows 8 メトロ/ストアアプリ)であるかどうかを決定します

acKillDisplayText()
戻値: 整数 (常に1)
解説: 表示時間に満たなくてもacDisplayTextウィンドウを強制的に閉じます

acLockWindows()
戻値: 整数 (常に1)
解説: Win+Lを押した時と同様に、Windowsをロック(ログオフ)します


acMaximizeWindow(hwndTarget, x, y)
 引数: hwndTarget: 最大化するウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: 最大化するウィンドウ内のX座標
  y: 最大化するウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定した座標のウィンドウを最大化します

acMaximizeOrRestoreWindow(hwndTarget, x, y)
引数: hwndTarget: 復元又は最大化するウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: 復元又は最大化するウィンドウ内のX座標
  y: 復元又は最大化するウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定した座標にあるウィンドウの状態に依存して復元又は最大化を行います

acMaximizeToAllScreens(hwndTarget, x, y)
引数: hwndTarget: 対象となるウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
戻値: 整数 (常に1)
解説: 全てのモニタに跨がるようにデスクトップ全体にウィンドウを引き伸ばします。一般的にこれは余り使い物にはなりませんが、一応実装されています

acMessageBox(message, title, style)
引数: message: 表示するメインメッセージ
  title: メッセージボックスのタイトル
  style: アイコン、ボタン、デフォルトボタンの設定を含むメッセージボックスのスタイルを表す整数値(Win32仕様準拠)。nilならスタイル無し(OKボタンのみ)
戻値: 整数 - メッセージボックスによって返される値で、スタイルが指定されている場合にどのボタンがクリックされたかが返されます(はい/いいえのボックスのように、戻り値で選択されたボタンが分かります)
解説: 標準Windowsメッセージボックスを表示します。アイコンやボタンをカスタマイズしたスタイルを設定する事も出来ます

acMinimizeWindow(hwndTarget, x, y)
引数: hwndTarget: 最小化させるウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: 最小化させるウィンドウ内のX座標
  y: 最小化させるウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定した座標のウィンドウを最小化します

acMouseClick(x, y, button, down, up)
引数: x: クリックを発生させる場所のX座標
  y: クリックを発生させる場所のY座標
  button: 送信するマウスボタン
    0: 第2ボタン (入れ替えていない限り、デフォルトでは右マウスボタン)
    1: 中央ボタン
    2: 第1ボタン (入れ替えていない限り、デフォルトでは左マウスボタン)
    3: X1ボタン
    4: X2ボタン
  down: (0:偽、1:真) 真ならMOUSE_BUTTON_DOWNメッセージを送信
  up: (0:偽、1:真) 真ならMOUSE_BUTTON_UPメッセージを送信
 戻値: 整数 (常に1)
解説: 指定した座標にマウス押下/押上イベントを送信します

acMouseMove(x, y)
引数: x: マウスカーソル移動先のX座標
  y: マウスカーソル移動先のY座標
戻値: 整数 (常に1)
解説: 指定した座標へマウスカーソルを移動させます

acMoveWindow(hwndTarget, x, y, left, top)
引数: hwndTarget: 移動させるウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: 移動させるウィンドウ内のX座標
  y: 移動させるウィンドウ内のY座標
  left: ウィンドウ移動先の左上隅X座標
  top: ウィンドウ移動先の左上隅Y座標
戻値: 整数 (常に1)
解説: 指定した座標へウィンドウを移動させます

acNextApplication()
戻値: 整数 (常に1)
解説: Altを押しながらTabを押した時と同様に、ウィンドウリスト内の次のアプリケーションへ切り替えます(開かれているプログラムは循環しています)

acPauseResumeThreadList(hwndTarget, x, y, resume)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
  resume: (0: 偽、1: 真) 真ならスレッドを復帰、偽なら休止させます
戻値: 整数 (常に1)
解説: ウィンドウの全スレッドを休止又は復帰させます。これは実際かなり危険な行為で、作者やMicrosoftは非推奨とします。

acPlaySound(filename)
引数: filename: WAVファイルをフルパス指定(Lua文字列にエスケープする必要あり)
戻値: 整数 (常に1)
解説: 音楽を再生します

acPostMessage(hwndTarget, MessageID, wParam, lParam)
引数: hwndTarget: メッセージ送信先となるウィンドウのハンドル
  MessageID: (整数) 送信するメッセージID
  wParam: (整数) 送信するwParam
  lParam: (整数) 送信するlParam
戻値: 整数 (常に1)
解説: これはwParamとlParamで複雑なデータ構造を許可しないとても単純な方式です

acPreviousApplication()
戻値: 整数 (常に1)
解説: 前のウィンドウに切り替えます(Alt+Tabと同じ挙動)

acRegistryCreateKey(rootkey, path)
 
引数: rootkey: (整数) ルートレジストリキー:
  1 = HKEY_CLASSES_ROOT
  2 = HKEY_LOCAL_MACHINE
  3 = HKEY_CURRENT_USER
  4 = HKEY_USERS
  path: (文字列) 作成するキーのパス(\はエスケープして\\にする必要あり)
戻値: 整数 (0=失敗、1=成功)
解説: 指定したパスに新しくキーを作成します

acRegistryDeleteKey(rootkey, path)
引数:  rootkey: (整数) ルートレジストリキー:
  1 = HKEY_CLASSES_ROOT
  2 = HKEY_LOCAL_MACHINE
  3 = HKEY_CURRENT_USER
  4 = HKEY_USERS
  path: (文字列) 削除するキーのパス(\はエスケープして\\にする必要あり)
戻値:  整数 (0=失敗、1=成功)
解説: 指定したパスのキーを削除します。サブキーが存在する場合は削除出来ないので、まず始めにサブキーを削除しなければなりません

acRegistryDeleteValue(rootkey, path, name)
引数: rootkey: (整数) ルートレジストリキー:
  1 = HKEY_CLASSES_ROOT
  2 = HKEY_LOCAL_MACHINE
  3 = HKEY_CURRENT_USER
  4 = HKEY_USERS
  path: (文字列) 削除する値が存在するキーへのパス(\はエスケープして\\にする必要あり)
  name: (文字列) 削除する値の名前
戻値: 整数 (0=失敗、1=成功)
解説: 指定したパスと名前を持つ値を削除します

acRegistryGetNumber(rootkey, path, name, default)
引数: rootkey: (整数) ルートレジストリキー:
  1 = HKEY_CLASSES_ROOT
  2 = HKEY_LOCAL_MACHINE
  3 = HKEY_CURRENT_USER
  4 = HKEY_USERS
  path: (文字列) 取得する値を持つキーへのパス(\はエスケープして\\にする必要あり)
  name: (文字列) 取得する値の名前
  default: (整数) 見つからなかった場合に返されるデフォルト値
戻値: 整数 (取得した値または見つからなかった場合はデフォルト値)
解説: 指定したキー/パス/名前の値を取得します

acRegistryGetString(rootkey, path, name, default)
引数: rootkey: (整数) ルートレジストリキー:
  1 = HKEY_CLASSES_ROOT
  2 = HKEY_LOCAL_MACHINE
  3 = HKEY_CURRENT_USER
  4 = HKEY_USERS
  path: (文字列) 取得する値を持つキーへのパス(\はエスケープして\\にする必要あり)
  name: (文字列) 取得する値の名前
  default: (文字列) 見つからなかった場合に返されるデフォルト値
戻値: 文字列 (取得した値または見つからなかった場合はデフォルト値)
解説: 指定したキー/パス/名前の値を取得します。REG_EXPAND_SZは環境変数を展開できる種類のレジストリキーです

acRegistrySetNumber(rootkey, path, name, value)
引数: rootkey: (整数) ルートレジストリキー:
1 = HKEY_CLASSES_ROOT
2 = HKEY_LOCAL_MACHINE
3 = HKEY_CURRENT_USER
4 = HKEY_USERS
  path: (文字列) 値を格納するキーへのパス(\はエスケープして\\にする必要あり)
  name: (文字列) 格納する値の名前
  default: (整数) 格納する値
戻値: 整数 (0=失敗、1=成功)
解説: 指定したキー/パス/名前の値を設定します

acRegistrySetString(rootkey, path, name, value, type)
引数: rootkey: (整数) ルートレジストリキー:
  1 = HKEY_CLASSES_ROOT
  2 = HKEY_LOCAL_MACHINE
  3 = HKEY_CURRENT_USER
  4 = HKEY_USERS
  path: (文字列) 値を格納するキーへのパス(\はエスケープして\\にする必要あり)
  name: (文字列) 格納する値の名前
  value: (整数) 格納する値
  type: (整数) 格納するキーの種類:
  1 = REG_SZ (デフォルト)
  2 = REG_EXPAND_SZ
戻値: 整数 (0=失敗、1=成功)
解説: 指定したキー/パス/名前の値を設定します

acRelayGesture()
戻値: 整数 (常に1)
解説: 他のアプリケーションがジェスチャを処理することが出来るように、最後のジェスチャの組み合わせを繰り返します。れはマウスボタンがストロークボタンとなる設定だけに適用され、修飾子は中継されません。

acReloadConfig()
戻値: 整数 (常に1)
解説: 設定ファイル(StrokesPlus.xml)からデータを再読み込みします

acRestoreWindow(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定したウィンドウを復元します

acRunProgram(fullpath, parameters, seconds, style)
引数: fullpath: EXEのフルパス。バックスラッシュはエスケープする必要あり
(C:\windows\notepad.exeはC:\\windows\\notepad.exeと記述しなければなりません)
  parameters: プログラムへ渡すコマンドラインパラメータ
  seconds: (終了コードを得たい場合等に)プログラムの終了を待機する秒数。待機時間が過ぎてもまだプログラムが実行中なら0が返されます
  style: プログラムのウィンドウスタイル(隠し、標準、最大化等)で、Microsoftサイト上で説明されているnCmdShowの何れかの値を使用します。
戻値: 整数 … 0又はプログラムからの終了コード(遅延時間内にプログラムが終了した場合)
解説: 指定したプログラムを実行します

acSendAltDown()
戻値: 整数 (常に1)
解説: Altキー押下イベントを送信します

acSendAltUp()
戻値: 整数 (常に1)
解説: Altキー押上イベントを送信します

acSendControlDown()
戻値: 整数 (常に1)
解説: Ctrlキー押下イベントを送信します

acSendControlUp()
戻値: 整数 (常に1)
解説: Ctrlキー押上イベントを送信します

acSendKeyDown(VKey)
引数: VKey: 送信する仮想キーコード
戻値: 整数 (常に1)
解説: アクティブウィンドウへキー押下イベントを送信します

acSendKeys(keystring)
引数: keystring: 送信するキーストロークを文字列で指定します(ヘルプ参照)
  ^ = Ctrl
  % = Alt
  + = Shift
  @ = Win
  ~ = Enter
戻値: 整数 (常に1)
解説: アクティブウィンドウへキーストロークを送信します

acSendKeyUp(VKey)
引数: VKey: 送信する仮想キーコード
戻値: 整数 (常に1)
解説: アクティブウィンドウにキー押上イベントを送信します

acSendMessage(hwndTarget, MessageID, wParam, lParam)
引数: hwndTarget: メッセージ送信先となるウィンドウのハンドル
  MessageID: (整数) 送信するメッセージID
  wParam: (整数) 送信するwParam
  lParam: (整数) 送信するlParam
戻値: 整数 (常に1)
解説: これはwParamとlParamで複雑なデータ構造を許可しないとても単純な方式です

acSendShiftDown()
戻値: 整数 (常に1)
解説: Shiftキー押下イベントを送信します

acSendShiftUp()
戻値: 整数 (常に1)
解説: Shiftキー押上イベントを送信します

acSendWinDown()
戻値: 整数 (常に1)
解説: Winキー押下イベントを送信します

acSendWinUp()
戻値: 整数 (常に1)
解説: Winキー押上イベントを送信します

acSendWindowToBottom(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定したウィンドウをウインドウスタック(画面を横に置いて見下ろした場合のウィンドウ重ね順を想像して下さい)の最下層へ配置します

acSendWindowToMonitorByHandle(monitorhandle)
引数: monitorhandle: 対象となるモニタハンドル
戻値: 整数 (常に1)
解説: 指定したモニタへウィンドウを送ります(ウィンドウの位置は左上隅の座標が元になり、リサイズは行われません)

acSendWindowToMonitorByName(monitorname)
引数: monitorname: 対象となるモニタ名(バックスラッシュはエスケープする必要があります。例えば"\"は"\\"となり、"\\.\DISPLAY1"はLuaスクリプトでは"\\\\.\\DISPLAY1"と記述します)
戻値: 整数 (常に1)
解説: 指定したモニタへウィンドウを送ります(ウィンドウの位置は左上隅の座標が元になり、リサイズは行われません)

acSendWindowToNextMonitor(hwndTarget, x, y)
引数: hwndTarget: 対象となるウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
戻値: 整数 (常に1)
解説: 次のモニタへウィンドウを送ります(ウィンドウの位置は左上隅の座標が元になり、リサイズは行われません)

acSendWindowToPreviousMonitor(hwndTarget, x, y)
引数: hwndTarget: 対象となるウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: hwndTargetが指定されていない場合、座標(x, y)にあるウィンドウのハンドルが取得されます
  y: 上記参照
戻値: 整数 (常に1)
解説: 前のモニタへウィンドウを送ります(ウィンドウの位置は左上隅の座標が元になり、リサイズは行われません)

acSetClipboardText(value)
引数: value: クリップボードへ保存するテキスト
戻値: 整数 (常に1)
解説: クリップボードのテキストを"value"に設定します

acSetMute(value)
引数: value: 1=ミュート、0=ミュート解除
戻値: 整数 (常に1)
解説: value値が指すミュート状態に設定します

acSetNumber(value)
引数: value: S+メモリ内に格納する数値
戻値: 整数 (常に1)
解説: 後でacGetNumberによって参照できる数値をS+メモリ内に格納します

acSetProcessPriority(hwndTarget, x, y, priority)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
  priority: (整数) 新しい優先順位値(MicrosoftのdwPriorityClassの値に準拠)
戻値: 整数 (常に1)
解説: ウィンドウのプロセス優先順位を設定します

acSetTopmost(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定したウィンドウのTOPMOST(最前面)フラグをクリアします

acSetVolume(value, increment)
引数: value: (整数 0~100) 設定したい音量値
  increment: (0:偽、1:真) … 真なら現在の音量に対してvalue値を増分し、偽なら音量をvalueに直接設定します
戻値: 整数 (常に1)
解説: 主音量を設定します

acSetWindowColorKey(hwndTarget, x, y, remove, red, green, blue)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
  remove: (0:偽、1:真) 透明色キーを削除するには真にします
  red: 作成する色キーの赤値
  green: 作成する色キーの緑値
  blue: 作成する色キーの青値
戻値: 整数 (常に1)
解説: 指定した透明色キー(R,G,B)にマッチする全てのウィンドウ部品を透過させます。ウィンドウによっては一風変わった見栄えになります!

acSetWindowSize(hwndTarget, x, y, left, top, width, height)
引数: hwndTarget: 移動・リサイズするウィンドウのハンドル、nilの場合は座標(x, y)にあるウィンドウが対象となります
  x: 移動・リサイズするウィンドウ内のX座標
  y: 移動・リサイズするウィンドウ内のY座標
  width: 新しいウィンドウの幅
  height: 新しいウィンドウの高さ
戻値: 整数 (常に1)
解説: 指定した座標、幅/高さにウィンドウを移動・リサイズします

acSetWindowTransparency(hwndTarget, x, y, opacity)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
  opacity: 透過度を0~255(255は不透明)の間で指定
戻値: 整数 (常に1)
解説: ウィンドウの透過度を設定します。0は完全に透明になり、255は不透明になります

acSetWindowTransparencyAndColorKey(hwndTarget, x, y, opacity, red, green, blue)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
  opacity: 透過度を0~255(255は不透明)の間で指定
  red: 作成する色キーの赤値
  green: 作成する色キーの緑値
  blue: 作成する色キーの青値
戻値: 整数 (常に1)
解説: ウィンドウの透過度、透明色キーを設定します

acShellExecute(verb, file, parameters, directory, style)
引数: verb: edit、explore、find、open、printの何れか。詳細はMSDNのShellExecute関数の項を参照して下さい
  filename: オープンするファイル又はフォルダ。directoryパラメータが指定されていない場合は現在のディレクトリが使用されます
  parameters: (オプション) プログラムに渡すコマンドラインパラメータ
  directory: (オプション) 作業ディレクトリ
  style: プログラムのウィンドウスタイル(隠し、標準、最大化等)で、Microsoftサイト上で説明されているnCmdShowの何れかの値を使用します
戻値: 整数 (常に1)
解説: 指定したファイルやオブジェクトに対して指定した操作を実行します。例えばMS Wordドキュメントを"open"で指定すれば、MS Wordでそのファイルが開かれます。或いはacRunProgram()と同じようにEXEを直接指定する事も出来ます

acShowAbout()
戻値: 整数 (常に1)
解説: アバウトウィンドウを表示します

acShowMouseCursor()
戻値: 整数 (常に1)
解説: 全ての標準マウスカーソルを再読み込みします

acShowSettings()
戻値: 整数 (常に1)
解説: 直前に開いていたS+設定ウィンドウを開きます

acShowActions()
戻値: 整数 (常に1)
解説: アクションウィンドウを表示します

acShowHotkeys()
戻値: 整数 (常に1)
解説: ホットキーウィンドウを表示します

acShowIgnoreList()
戻値: 整数 (常に1)
解説: 無視リストウィンドウを表示します

acShowPrefs()
戻値: 整数 (常に1)
解説: 設定ウィンドウを表示します

acTerminateProcess(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (常に1)
解説: 指定したウィンドウのメインプロセスを強制終了させます。そのためファイルの保存を促すようなユーザーに配慮したメッセージが表示される事はありません

acTileWindows(mode, area, method)
引数: mode: 1:横に並べる、2:縦に並べる
  area: 0:ジェスチャが開始されたウィンドウが存在する画面上だけに適用、1:仮想デスクトップ全体に適用
  method: 0:StrokesPlusが配置、1:Windowsが配置
戻値: 整数 (常に1)
解説: 開かれている全てのウィンドウを画面上、又は全ての仮想画面上に縦、又は横に並べます。非標準の方式で作成されたウィンドウの中には適切に配置できないものがあります。この挙動は将来的に改善していく予定です。

acToggleMute()
戻値: 整数 (常に1)
解説: 主チャンネルのミュートを切り替えます

acToggleTopmost(hwndTarget, x, y)
引数: hwndTarget: ウィンドウのハンドル、nilを指定した場合はウィンドウの特定にxとyを使用します
  x: ウィンドウ内のX座標
  y: ウィンドウ内のY座標
戻値: 整数 (常に1)
解説: ウィンドウのTOPMOST(最前面)フラグを切り替えます

acToggleTrayIcon(state)
引数:  state: -1 … トレイアイコンだけを隠します
 0 … トレイアイコンの表示/非表示を切り替えます
 1 … トレイアイコンだけを表示します
戻値: 整数 (常に1)
解説: StrokesPlusのトレイアイコンを表示状態を指定します。これはCTRL+SHIFT+WIN+Sを押した時と同じ挙動が実現できます

[先頭に戻る]    acSendKeysの使い方:

StrokesPlusのacSendKeysは以下のプロジェクトが基盤となります:
http://www.codeproject.com/KB/cpp/sendkeys_cpp_Article.aspx

----

キー修飾子(左側の文字に右側のキーが対応していて、例えば"%h"では ALT+H を送信します):

@ = Winキー
+ = Shift
^ = Ctrl
% = Alt

その他の関数:

{VKEY X} … 指定したVKEY(仮想キーコード)を送信します。これは未定義のVKEYがある場合に有用です。例えば {VKEY 13} は VK_RETURN と等価になります。
参照: http://msdn.microsoft.com/en-us/library/dd375731%28v=VS.85%29.aspx

{BEEP X Y} … 周波数 X ヘルツで持続時間 Y ㍉秒でビープ音を鳴らします。

{DELAY X} … 次のキー送信をX㍉秒遅延させます。
デフォルトの遅延値(DELAY=X参照)が設定されていない限り、遅延されるキー送信は次の一回だけになります。
使用例: {DELAY 1000} ← 次のキーストロークを一秒遅延します。

{DELAY=X} … デフォルトの遅延値をX㍉秒に設定します。この設定は全てのキー送信をX㍉秒遅延させます。
この値を既に設定済みで、新たに{DELAY Y}を指定した場合、次のキー送信を一回だけY㍉秒遅延させ、その後に続くキー送信の遅延時間はX㍉秒になります。
使用例: {DELAY=1000} ← 全てのキー送信を一秒遅延します。

SendKeysの完全リスト:

{ADD} = VK_ADD
{APPS} = VK_APPS
{AT} = @
{BACKSPACE} = VK_BACK
{BKSP} = VK_BACK
{BREAK} = VK_CANCEL
{BROWSERBACK} = VK_BROWSER_BACK
{BROWSERFAVORITES} = VK_BROWSER_FAVORITES
{BROWSERFORWARD} = VK_BROWSER_FORWARD
{BROWSERHOME} = VK_BROWSER_HOME
{BROWSERREFRESH} = VK_BROWSER_REFRESH
{BROWSERSEARCH} = VK_BROWSER_SEARCH
{BROWSERSTOP} = VK_BROWSER_STOP
{BS} = VK_BACK
{CAPSLOCK} = VK_CAPITAL
{CARET} = ^
{CLEAR} = VK_CLEAR
{DECIMAL} = VK_DECIMAL
{DEL} = VK_DELETE
{DELETE} = VK_DELETE
{DIVIDE} = VK_DIVIDE
{DOWN} = VK_DOWN
{END} = VK_END
{ENTER} = VK_RETURN
{ESC} = VK_ESCAPE
{ESCAPE} = VK_ESCAPE
{F10} = VK_F10
{F11} = VK_F11
{F12} = VK_F12
{F13} = VK_F13
{F14} = VK_F14
{F15} = VK_F15
{F16} = VK_F16
{F_1} = VK_F1
{F_2} = VK_F2
{F_3} = VK_F3
{F_4} = VK_F4
{F_5} = VK_F5
{F_6} = VK_F6
{F_7} = VK_F7
{F_8} = VK_F8
{F_9} = VK_F9
{HELP} = VK_HELP
{HOME} = VK_HOME
{INS} = VK_INSERT
{LBRACE} = {
{LEFT} = VK_LEFT
{LPAREN} = (
{LWIN} = VK_LWIN
{MEDIANEXTTRACK} = VK_MEDIA_NEXT_TRACK
{MEDIAPLAYPAUSE} = VK_MEDIA_PLAY_PAUSE
{MEDIAPREVTRACK} = VK_MEDIA_PREV_TRACK
{MEDIASTOP} = VK_MEDIA_STOP
{MULTIPLY} = VK_MULTIPLY
{NUMLOCK} = VK_NUMLOCK
{NUMPAD0} = VK_NUMPAD0
{NUMPAD1} = VK_NUMPAD1
{NUMPAD2} = VK_NUMPAD2
{NUMPAD3} = VK_NUMPAD3
{NUMPAD4} = VK_NUMPAD4
{NUMPAD5} = VK_NUMPAD5
{NUMPAD6} = VK_NUMPAD6
{NUMPAD7} = VK_NUMPAD7
{NUMPAD8} = VK_NUMPAD8
{NUMPAD9} = VK_NUMPAD9
{PERCENT} = %
{PGDN} = VK_NEXT
{PGUP} = VK_PRIOR
{PLUS} = +
{PRTSC} = VK_PRINT
{RBRACE} = }
{RIGHT} = VK_RIGHT
{RPAREN} = )
{RWIN} = VK_RWIN
{SCROLL} = VK_SCROLL
{SEPARATOR} - VK_SEPARATOR
{SLEEP} - VK_SLEEP
{SNAPSHOT} = VK_SNAPSHOT
{SUBTRACT} - VK_SUBTRACT
{TAB} = VK_TAB
{TILDE} = ~
{UP} = VK_UP
{VOLDOWN} = VK_VOLUME_DOWN
{VOLMUTE} = VK_VOLUME_MUTE
{VOLUP} = VK_VOLUME_UP
{WIN} = VK_LWIN

使用例: acSendKeys("{SNAPSHOT}")    --Print Screen
         acSendKeys("%{SNAPSHOT}")   --ALT+Print Screen
Comments