
常々、アプリケーションをワンタッチで起動したいと思っていた私。
ビデオ一発起動(以前のドキュメント「現在のToday画面」を参照)にも成功しこれで心置きなくタシー…いや冗談です。
で、ボイスレコーダー(サウンドレコーダー)も一発で起動出来たらいいなと思って挑戦してみました。
しかも何かあった時にすぐに録音出来るように起動してすぐに録音開始したい。
以前のビデオ起動と同様の方法を試みようと思ったのですが、私が使用しているNoteMはキー入力あるいはソフトキーでの操作に対応していないっぽいので、自動で画面をタップしてくれるソフト「MTAP」を使用します。
NoteMについてはウィルコムファンを参照してください。
今回はサウンドレコーダーを例にしていますがキーに対応していない他のソフトに応用しても面白いかもしれません。
説明がすごく下手なので自分で試してコツを掴んでください。
常駐せずパラメータを付けて起動させるだけなので便利です。
MTAPのダウンロードはこちらより
-自作ソフト(趣味を晒してみるてすと)
まず、NoteM(対象アプリケーション)を起動しておきましょう。
次にMTAPをダウンロードしたら適当にProgram Filesにでも置いておきましょう。
そしてmtap.exeを起動します。
こんな画面が現れると思います。MTAPはパラメータを付けずに起動すると設定画面が表示されます。
では設定しましょう。
NoteMを最前面に表示した状態でMTAPをアクティブにするとNoteMの上に被さってきます。
MTAPの数字の書かれたタブの横にある矢印でタブを右に移動しTasksと書かれたタブを表示します。
タスク一覧というセレクトボックスからNoteMを選択し、下の▼ボタンを押すと、一番下のデフォルトと書かれているセレクトボックスに新たにNoteMが追加されます。
このNoteMを選択し、先程の矢印を利用して1と書かれたタブを表示します。
ここから、画面のどの部分をタップするかを設定していきます。
縦画面時と横画面時でタップする位置が変わってくるのでそれぞれを登録します。
位置ボタンを押してタップする位置を選択します。
NoteMの場合、まずは赤い録音ボタンの辺りをタップし、タップ有効のチェックボックスをonにします。
次に2と書かれたタブを表示し停止ボタンのタップ位置を登録します。
同様にして縦と横のタップ位置合計4つを登録したら一番下のセレクトボックスNoteMが選択されているのを確認して保存→左のOKボタンで終了します。
便宜上、ここでは1に縦画面時録音、2に縦画面時録音停止、3に横画面時録音、4に横画面時録音停止が設定されたものとします。
これでMTAP側の設定が終了しました。
では、次にランチャなどの呼び出し側の設定です。
ExecIfの場合、iniファイルを4つ用意してそれぞれnotem.ini,notem2.ini,notemstop.ini,notemstop2.iniとでもしておきます。
MTAPのインストール位置/フォルダ名により適宜変更して下さい。
notem.ini
[Active] class= title=NoteM mode=active exec=\Program Files\MTAP\mtap.exe|1 [Exec] class= title=NoteM mode=exec exec=active exec=\Program Files\MTAP\mtap.exe|1 [default] exec=\Program Files\NoteM\NoteM.exe sleep=500 exec=\Program Files\MTAP\mtap.exe|1 </code></pre></p> <p>notem2.iniはexec=\Program Files\MTAP\mtap.exe|1をexec=\Program Files\MTAP\mtap.exe|3に変更したものです。</p> <p><span class="nice">notemstop.ini</span> <pre><code> [Active] class= title=NoteM mode=active exec=\Program Files\MTAP\mtap.exe|2
notemstop2.iniはexec=\Program Files\MTAP\mtap.exe|2をexec=\Program Files\MTAP\mtap.exe|4に変更したものです。
以上でExecIfの設定は終わりです。
最後に上で作成したiniファイルを用い、W-ZERO3 UtilityPlus等のキー割当が出来るソフトを使用して一発で起動→録音出来るようにします。
私の例ではOKボタンを使用しています。
プリセット:標準 OK長押し(縦)にexexif.exeを割り当て、パラメータに先程のnotem.ini(フルパス)
プリセット:標準 OK長押し(横)にexexif.exeを割り当て、パラメータに先程のnotem2.ini(フルパス)
新たなプリセットを作成しNoteMとして、割当アプリにNoteMを指定します。
プリセット:標準を丸々コピーします。
プリセット:MoteM OK短押し(縦)にexexif.exeを割り当て、パラメータに先程のnotemstop.ini(フルパス)
プリセット:MoteM OK短押し(横)にexexif.exeを割り当て、パラメータに先程のnotemstop2.ini(フルパス)
以上でボタンへの割当が終わりました。
これで全ての設定が終了しました。
OKボタンを長押しすればNoteMが起動し録音が開始されたはずです。
この状態でOKボタンを押すと停止ボタンを押したのと同じ効果になります。
裏に回っている場合もう一度OKボタンを長押しするとアクティブになり録音ボタンが押されます(既に録音開始中の場合意味がありませんがアクティブになります)。
そしてアクティブになっているときにOKボタンを押すと停止ボタンが押されます。
うまくいかない場合は最適なsleepの値を設定してください。
下手な説明ですみません。。。
http://www.ezinfo.jp/doc/2006/04/29/mtap-526.html/trackbackコメントは管理者の承認後に表示、トラックバックは言及リンクのある場合表示されます。
vin:
2006.8.4. at 3:18:43
メモに対する録音マクロ書いてみました。
シャッターボタンに割り当てて使っています。
http://www.sto-helit.de/modules/edito/content.php?id=38
MortScript、けっこうお手軽です。
# voiceRec.mscr
# シャッターボタンを録音ボタンにする
#
# カメラアプリがアクティブの場合は
# シャッターとして機能させる
if wndactive “画像とビデオ”
sendCR
exit
endif
# 録音ボタン座標X
set icon_x1, 10
# 停止ボタン座標X
set icon_x2, 80
# 横画面の場合
if screen landscape
# ボタン座標Y
set icon_y, 415
# メニュー座標X
set menu_x, 550
# メニュー座標Y
set menu_y, 440
# 縦画面の場合
else
# ボタン座標Y
set icon_y, 580
# メニュー座標X
set menu_x, 360
# メニュー座標Y
set menu_y, 620
endif
# メモアプリが開始されていない場合
# メモアプリを開き録音ツールバーを表示する
if not procExists “notes.exe”
run \Windows\notes.exe
Sleep 500
MouseClick %menu_x%, %menu_y%
SendKeys A
# すぐに録音を開始する場合
#Sleep 1500
#MouseClick %icon_x1%, %icon_y%
exit
endif
# メモアプリが表示されていない場合
# メモアプリをアクティブにする
if not wndactive “メモ”
Show “メモ”
exit
endif
# 録音アイコンの色を拾い、録音状態を判別する
# 注)録音ツールバーが表示されていることを前提にしている
GetColorAt %icon_x1%, %icon_y%, rgb
# 録音中の場合
if equals %rgb%,”0″
# 録音停止
MouseClick %icon_x2%, %icon_y%
else
# 録音開始
MouseClick %icon_x1%, %icon_y%
endif
紹介ありがとうございます。
MortScriptいろんなことが出来るみたいですね。
時間が出来たら使ってみたいと思います。
縦横画面の判別も出来るのはポイント高いですね。
今はW-ZERO3 Utility Plusの縦横それぞれの設定にMTAPを設定しているので。
これがあればPQzに乗り換えも出来そうですし。
ただマクロを書くのが私には大変そうかも^^;
>ただマクロを書くのが私には大変そうかも^^;
phpに比べれば単純なもんです。
低級な分、融通が効かなくて苦労する部分は多いですけど。
NoteM用にする等、改変し易いように少し整理してみました。
ついでに録音ツールバー確認付きです。
NoteM用にする場合、座標等の変数の値を調整して
録音ツールバー関係を削除すれば動くと思います。
########################################
# voiceRec.mscr
# シャッターボタンを録音ボタンにする
#
########################################
#————
# カメラアプリがアクティブの場合はシャッターとして機能させる
if wndactive “画像とビデオ”
sendCR
exit
endif
#————
# 変数初期化
call initVars
#————
# メモアプリが開始されていない場合、メモアプリを開き録音ツールバーを表示する
if not procExists %exeName%
run %exePath%
call recBar_show
# すぐに録音を開始する場合
#call rec_start
exit
endif
#————
# メモアプリが表示されていない場合メモアプリをアクティブにする
if not wndactive %wndName%
run %exePath%
# すぐに録音を開始する場合
#call rec_start
exit
endif
#————
# 録音ツールバーを確認する
call recBar_check
#————
# 録音アイコンの色を拾い、録音状態を判別する
GetColorAt %icon_x1%, %icon_y%, rgb
# message %rgb%
# 録音中の場合
if equals %rgb%,”0″
call rec_stop
else
call rec_start
endif
exit
########################################
#————
# 変数初期化
#————
sub initVars
# アプリへのパス
set exePath, “\Windows\notes.exe”
# アプリ名
set exeName, “notes.exe”
# ウインドウ名
set wndName, “メモ”
# 録音ボタン座標X
set icon_x1, 10
# 停止ボタン座標X
set icon_x2, 80
# 赤丸座標X
set red_x, 30
# 横画面の場合
if screen landscape
# ボタン座標Y
set icon_y, 415
# メニュー座標X
set menu_x, 550
# メニュー座標Y
set menu_y, 440
# 赤丸座標Y
set red_y, 400
# 赤丸RGB
set red_rgb, “531637″
# 縦画面の場合
else
# ボタン座標Y
set icon_y, 580
# メニュー座標X
set menu_x, 360
# メニュー座標Y
set menu_y, 620
# 赤丸座標Y
set red_y, 570
# 赤丸RGB
set red_rgb, “5276″
endif
endSub
#——————-
# 録音ツールバー表示
#——————-
sub recBar_show
WaitForActive %wndName%, 10
MouseClick %menu_x%, %menu_y%
SendKeys A
sleep 500
endSub
#——————-
# 録音ツールバー確認
#——————-
sub recBar_check
GetColorAt %red_x%, %red_y%, rgb
# message %rgb%
# 表示されていない場合
if not equals %rgb%, %red_rgb%
call recBar_show
endif
endSub
#———
# 録音開始
#———
sub rec_start
WaitForActive %wndName%, 10
call recBar_check
MouseClick %icon_x1%, %icon_y%
endSub
#———
# 録音停止
#———
sub rec_stop
MouseClick %icon_x2%, %icon_y%
endSub
短めのサンプルをも1つ。
特定のアプリをポップアップ的に表示・非表示を切り替えるマクロです。
ファイラーとエディターを行ったり来たりするような時に便利です。
ただし0号みたいにウインドウ名とアプリ名が一致しないアプリは切り替えられないという穴があります。
ExecIfで同様な機能を実現した方が簡潔で確実です。
場合によりけり使い分けということで。
紙面汚し失礼しました。
################################
# popUp.mscr
# 特定のアプリをポップアップ的に
# 表示・非表示を切り替える
################################
# 対象アプリパス設定(ショートカットでも可)
set exePath, “\Program Files\GSFinder\GSFinder-U.exe”
# 現在アクティブなアプリのファイル名を得る
getActiveProcess proc
# 拡張子を削除し名前のみ抜き出す(ショートカット対策)
getPart %proc%, “.”, 0, 1,proc
# 対象アプリパスにアクティブなアプリ名が含まれるかをチェック
find %exePath%, %proc%, pos
# 対象アプリがアクティブだった場合はウインドウを隠す
if not equals %pos%, 0
getActiveWindow front
minimize %front%
else
run %exePath%
endif