マクロ作りの一歩手前(1)

相変わらず@wikiに悪戦苦闘中です。マニュアルに載ってない機能があるって変な話ですよね・・・しかも太字なんて一番使いそうな機能なのに・・・・


とりあえず愚痴は置いといて、wiki開設記念に、一番需要のありそうなATOK一括登録マクロを手直しすることにしました。

今回のコンセプトは「より簡単に、より高速に、より確実に」です。

前回のマクロで一番時間が掛かってたところは

  • nOpenを起動して
  • 実行ファイルにKeyInputEmulatorを指定して
  • パラメータに品詞を選ぶカーソル操作を指定して
  • 実行ボタンを押す

ところでした。
ここでnOpenを使わないで実行すればかなり高速化できるのは分かってるんですが、nOpenのウィンドウが出ないと、そのぶんマクロを途中で止めるのが難しくなるんですね。
そこで、

  • nOpenのように別アプリの上にウィンドウを出す
  • nOpenのように実行アプリのパラメータを動的に指定できる
  • nOpenよりも高速に使える

というツールを探したところ、392さん作のSimpleMenuが使えそうな感じです。

といいつつ、SimpleMenuをまだきちんと使ってないんでもうちょっと研究させてください(^^;

そういやウィッキーさんって最近見かけませんね

昨日の日記で書いたwikiですが、早速つまづいてます。
利用している@wikiでは文書ごとにワープロモードとwikiモードが選べます。全くwiki記法を知らないでも使えるワープロモードをメインに使いたかったんですが、使ってみたらどうにもいまいちでして・・・
wiki内の別文書にリンク張れないんじゃwikiの意味ないじゃん・・・・文書を変更して保存する前にプレビュー見れないし・・・・ページのURLが数字の連番になるのはまぁ許容範囲かな。
せめてワープロモードとwikiモードを変換できればいいんですが、それができない・・・

それでも他のwikiよりは使いやすそうなんで、wikiモードでもうしばらく試してみたいと思います。せっかく頑張ってcss書いたんだから、これが無駄にならないといいんですが。

ども、DORです。相変わらずご無沙汰してます。

今までW-ZERO3向けのマクロについていろいろ書いてきましたが、ブログ形式に限界を感じて、wikiを併用することにしました。

wikiBUGまみれ

 ・ツールを都度紹介する必要がなかったり
 ・バージョンアップに対応しやすい
 ・過去の記事を再利用しやすい
 ・毎日書かなくてもばれないw

といったwikiのメリットが活かせるといいなぁと思ってます。
今後、こっちのブログは途中経過やら雑記を書くのに併用する予定です。


ところで以前コメントを頂いてからずっと気にしてるんですが、いわゆる一般的なマクロの規模を超えてしまうものって、なんかいい呼び方ないですかね。
大型マクロ?ホクロ?ザクロ?ムクロ?

なんかいいのがあったら教えてください。

助けた亀に脅されて

どうも、DOR島太郎です。ご無沙汰してます。
久々にマクロ関係の記事を書こうと思ったんですが、休んでた間にツールがいろいろとバージョンアップしてるため、それを追いかけるのに必死です。
えっとExecMultiでしょ、SimpleMenuでしょ・・・他、何があったっけ(^^;

ま、ぼちぼちあせらずやっていきますので、今後ともどうぞよろしくです。

徐々に奇妙な1週間

ここ最近、マクロを作る余力がなくて更新もできなくて申し訳ないです(^^;

で、今回は全っ然W-ZERO3には関係ない話です。
来週土曜日10/28にイベントを主催するんですが、その準備で時間を削られちゃって。
ExecMulti Ver0.30のアイデア出しとかCondExecのcheckとtriggerの詳細を調べたかったり、だんだん後手後手にまわっちゃって・・・イベントが終われば多少はペース戻せると思うんで、皆様気長にお待ちください。


ついでに参加者募集しときますw

ジョジョの奇妙な大運動会・第二部『運動潮流』
http://passionet.s77.xrea.com/x/jojolympic2.html

ジョジョ好きでもジョジョが分からなくても楽しめるイベント、のはずです。
もし興味があってお時間に暇があれば是非ご来場くださいな。

マクロのお供にExecシリーズ

マクロを作るうえで必要不可欠なももたろ様のExecシリーズが、立て続けにバージョンアップしたうえに、新ツールまで登場しました! ということで4本まとめてどうぞ!

ExecMulti Ver0.30

複数アプリを起動して実行するツールExecMultiに、起動したアプリの終了を待ってから次のアプリを起動する機能が追加されました!
今までのマクロではアプリが終了するまでの時間+αを適当に指定してsleepしてたために、

  • アプリの終了前に次の処理を行って失敗してしまうことがある
  • 待機時間を長くし過ぎると実行速度が低下して効率が悪い

という問題がありました。今までもCondExecを併用して解決できたのですが、手軽さや速さでは今回の機能が上回っています。

ExecIf Ver0.12

アプリの起動状況に応じてアプリを起動しわけるツールExecIfが、同時に複数起動できるようになりました!
先日ExecMultiを改良していただいたのですが、これをExecIfにも反映した形になります。

ExecIfで判断後、ExecMultiを起動すれば対応できてたのですが、やっぱExecIfだけで対応できると楽ですね。

ExecLP Ver0.10

縦画面/横画面に応じてアプリを起動しわけるツールExecLPがリリースされました!
ボタン等に割り当てて使うのが主目的と思われますが、マクロでも

  • 無限ループを終了するためのトリガーとして使う
    • 縦画面の間は無限ループして、横画面になったら終了
  • 縦/横画面でMTAPのタップ位置を変更する

といった活用ができそうです。

ExecSelect Ver0.12

コマンドラインパラメータをそのまま引き渡す、メニュー型ランチャExecSelectにメニュー表示位置を指定する機能が追加されました!
以前ちょろっと書いたアイデアを採用していただきました、恐縮です(^^;
これはマクロ内で使うというよりも、複数のマクロを起動しわけるために使うと便利ですね。


ますます充実しまくってきたW-ZERO3でのマクロ作り環境! DORは全力でExecシリーズを応援し続けます!!

おいしいマクロの作り方 (完結編)

前回までの流れ

 第1回 第2回 第3回 第4回 第5回 第6回

  • 「指定した時間経ったらマナーモードを解除する」マクロを作る
  • 一応完成

最終形

ということでマクロの最終形は以下のようになりました。

起動用設定(ショートカット等)
  • プログラム=\Program Files\CondExec\CondExec.exe
  • パラメータ=-section=MannerToggle
CondExec CondExec.ini
[MannerToggle]
class=DoNothing
title=MannerTimer
check=current
trigger=running
exec=close
onunmatch=\Program Files\SimpleMenu\SimpleMenu.exe|MannerTimer.ini

[MannerTimer]
class=DoNothing
title=MannerTimer
check=both
trigger=closed
exec=\Program Files\SetManner\SetManner.exe|/off
exec=\Program Files\IfMsg\IfMsg.exe|マナーモードを解除しました
polling=10000
SimpleMenu MannerTimer.ini
[30分]
\Program Files\execmulti\execmulti.exe|MannerTimer_30
[60分]
\Program Files\execmulti\execmulti.exe|MannerTimer_60
[90分]
\Program Files\execmulti\execmulti.exe|MannerTimer_90
[120分]
\Program Files\execmulti\execmulti.exe|MannerTimer_120
[180分]
\Program Files\execmulti\execmulti.exe|MannerTimer_180
[連続]
\Program Files\execmulti\execmulti.exe|MannerTimer_Never
ExecMulti execmulti.ini
[MannerTimer_30]
\Program Files\DoNothing\DoNothing.exe|-execmode=open -alivetime=1800000 -showicon=false -title=MannerTimer
\Program Files\execmulti\execmulti.exe|MannerTimer

[MannerTimer_60]
\Program Files\DoNothing\DoNothing.exe|-execmode=open -alivetime=3600000 -showicon=false -title=MannerTimer
\Program Files\execmulti\execmulti.exe|MannerTimer

[MannerTimer_90]
\Program Files\DoNothing\DoNothing.exe|-execmode=open -alivetime=5400000 -showicon=false -title=MannerTimer
\Program Files\execmulti\execmulti.exe|MannerTimer

[MannerTimer_120]
\Program Files\DoNothing\DoNothing.exe|-execmode=open -alivetime=7200000 -showicon=false -title=MannerTimer
\Program Files\execmulti\execmulti.exe|MannerTimer

[MannerTimer_180]
\Program Files\DoNothing\DoNothing.exe|-execmode=open -alivetime=10800000 -showicon=false -title=MannerTimer
\Program Files\execmulti\execmulti.exe|MannerTimer

[MannerTimer_Never]
\Program Files\DoNothing\DoNothing.exe|-execmode=open -alivetime=0 -showicon=false -title=MannerTimer
\Program Files\execmulti\execmulti.exe|MannerTimer

[MannerTimer]
\Program Files\SetManner\SetManner.exe|/on
\Program Files\IfMsg\IfMsg.exe|マナーモードを設定しました
\Program Files\CondExec\CondExec.exe|-execmode=open -showicon=false -section=MannerTimer

変更点は以下のとおり。

  • CondExecの-debug=TRUEを削った
  • CondExec、DoNothingを-showicon=false(常駐中にアイコン非表示)にした
  • SetManner、ExecMultiにタイマー時間を追加した

注意点

  • サスペンド中はCondExecのタイマーも停止するようで、激しく役に立ちません(待て
    • マクロを思いついて作ってみたら役立たず、なんてことはしょっちゅうです、ぐふ。
    • サスペンドしないように設定する」のは電池が勿体無いので没
    • 起動時の時刻から指定分数後を終了時刻として設定し、チェック時にその時刻を過ぎていたら終了する」ような処理ができれば、サスペンド復帰した直後に終了できるんですが・・・例によって誰か作ってくれませんかね(ぉぃ!
  • Todayから[*]キー長押しでマナーモードOn/Offした場合は動作がおかしくなります。
  • あとタイマー中に再起動した場合タイマーは切れますのでご注意を。
    • レジストリ監視でもしないとこれらは対応できません
    • でも逆に監視さえできれば対応できる可能性が・・・(ゴクリ)

まとめ

当初の予定以上に長い連載になったうえ、まともに使えないというオチまでついてしまいましたorz

で、連載の終わりにこんなこというのもアレなんですが・・・紹介した手順でマクロを作るのは、効率が悪いのでお勧めしません。それよりすぐに作り始めて、作りながら仕様をまとめてくほうが絶対に楽です。複数のパターンを比較/検討しないですみますし、何より今回のような不具合もそれだけ早く見つかるからです。


とまぁ最後までグダグダな連載でしたが、皆さんのマクロライフに少しでもお役に経てば幸いです。でももう二度とやらん・・・