テーマ:未分類(甘党)

日々、思いついたことを記録します。

ショートカットリンクの複製 shortcut_replica.hta v0.03

2007年07月26日 04時55分59秒 | 技術感想
参ったね、ショートカットリンクの複製 shortcut_replica.htaは、まだ、動作していませんでしたね。
今度は、ちゃんと、評価フォルダ以外で動作実績のあるものをアップロードしました。

「甘党のプログラマのファイル保管庫」「その他のスクリプト」ページの「■ ショートカットリンクの複製」

ショートカットリンクの複製 shortcut_replica.hta v0.02

2007年07月25日 00時04分12秒 | 技術感想
ショートカットリンクの複製 shortcut_replica.hta v0.01にアップロードしたファイルを、自分でダウンロードして、使おうとしたら、動作しないじゃないですか、、、。どうも間違ってファイルをアップロードしてしまったようで、で、評価用のフォルダが残っていたので、まさか、アップロードしたファイルが間違っているとは思っていないから、ファイルの比較をする前に、何を血迷ったのか、評価用フォルダに、ダウンロードしたファイルをオーバーライトして、評価用フォルダでも、動作しないことの確認をして、ソースコードをみたら、作成したはずのコード達が抜けていたりしています。
しょうがないので、もう一度、デバッグしながら、ついでに、Application開始時イベントのSub Window_OnLoadを追加して、htaファイルがあるディレクトリをデフォルトとして設定する機能を追加してみました。

新しいファイルのダウンロードは、以下からできるようにしてあります。

「甘党のプログラマのファイル保管庫」「その他のスクリプト」ページの「■ ショートカットリンクの複製」

秀丸エディタマクロのショートカットキー割付の方法

2007年07月24日 06時07分45秒 | 秀丸エディタ Tips
秀丸エディタマクロの「KeyboardMacro拡張」とか、「クリップボード履歴の取り込み」、さらには、セキセイニャンコ(nyan)さん作成の「NYANKEY ver 3 ...文字列 Cut&Paste バッファ× 280個」の登録をしようとしたときに、大量のショートカットキーの設定が必要になります。

ただ、秀丸エディタのキー割り付けのダイアログボックスって、ショートカットキーを指定して、そのあとに、割り当てる機能を選択するようなダイアログボックスなので、同じマクロを、違うショートカットキーに割り付ける作業は、無意味に、大変です。(新たなショートカットキーを割り付けるとき、かならず、最初は、(なし)から始まるので、そのあとの同じ機能選択をひたすら繰り返す羽目になる。)

そして、h-tomさん作成の「キー設定マクロ(key-assign-set.mac)」なるものを見つけて、どうやら、秀丸エディタ自体のショートカットキーの設定のレジストリやその取り込みの挙動を解析して実現したようで、すごそうなのですが、ただ、どうやら、ませまさん作成の「キー割り当て拡張マクロ」を使った場合のiniファイルを読み込んで動作するようです。
まだ、ませまさん作成の「キー割り当て拡張マクロ」は使ったことがないのですが、どうも、機能概要を見ても、自分には、必要そうがありません。

で、ここまでのところで、WSHで、秀丸エディタのモーダルダイアログを操作してきているので、同様に、秀丸エディタの「キー割り当て」ダイアログボックスを操作してしまうのはどうだろうと思ってしまい、まずは、「キー割り当て」ダイアログボックスの中のキーリストと、そのキーのiskeydown関数のコードを調べてみました。

秀丸エディタV6.11のキー割り当てダイアログのキーリスト

この表の中の[採取データ]を元に、[テーブルデータ]のように、マスターテーブルを作って、そのインデックスを参照するように、Shift/Ctrl/Altの状態で、テーブルを切り替えようと考えてみました。

そのあと、WSHのSendKeysで、本当に、登録済みのマクロのショートカットキーの設定ができるものかどうかを、まずは、KeyboardMacro拡張のEVAL機能を使って試していたら、あまり、汎用性を考えなければ、このEVALとキーボードマクロだけで、うまくいきそうです。

まあ、一度、設定してしまったら、そんなに、頻繁に設定するものでもないし、ここまでの情報を元に、設定の度ことに、キーボードマクロで、設定するだけで良いような気がしてきました。(まぁ、もう少し、頑張るんだったら、秀丸エディタのマクロをハードコーディングしても良いかもね。)


以下は、私のマシン上でのディレクトリパスや、設定するマクロの番号が固定だったりするので、調整が必要になります。

○ Alt+Shift+0~9を(なし)をマクロ41に設定する場合
$_=61~70
#M=41;$K="%L%S%K{DOWN "+$_+"}%C^{END}{UP}{TAB}^{HOME}{DOWN "+str(#M+7)+"}"; run "wscript.exe \"C:\\Program Files\\Hidemaru\\Macro\\KeyboardMacro拡張\\KeyboardMacroEx.vbs\" \"" + $K + "\" \"Not fond ERROR\" /W:\"キー割り当て\" /T:5"; keyassign;

○ Alt+Shift+Ctrl+1~9をマクロ41に設定する場合
$_=62~70
#M=41;$K="%L%S%T%K{DOWN "+$_+"}%C^{END}{UP}{TAB}^{HOME}{DOWN "+str(#M+7)+"}"; run "wscript.exe \"C:\\Program Files\\Hidemaru\\Macro\\KeyboardMacro拡張\\KeyboardMacroEx.vbs\" \"" + $K + "\" \"Not fond ERROR\" /W:\"キー割り当て\" /T:5"; keyassign;

○ Alt+Ctrl+Num0~Num9をマクロ41に設定する場合
$_=75~84
#M=41;$K="%L%T%K{DOWN "+$_+"}%C^{END}{UP}{TAB}^{HOME}{DOWN "+str(#M+7)+"}"; run "wscript.exe \"C:\\Program Files\\Hidemaru\\Macro\\KeyboardMacro拡張\\KeyboardMacroEx.vbs\" \"" + $K + "\" \"Not fond ERROR\" /W:\"キー割り当て\" /T:5"; keyassign;


○ Alt+Shift+0~9を(なし)にクリアする場合
$_=61~70
$KEY_SEQUENCE="%L%S%K{DOWN " + $_ + "}%C^{HOME}{TAB}^{HOME}"; run "wscript.exe \"C:\\Program Files\\Hidemaru\\Macro\\KeyboardMacro拡張\\KeyboardMacroEx.vbs\" \"" + $KEY_SEQUENCE + "\" \"Not fond ERROR\" /W:\"キー割り当て\" /T:5"; keyassign;

○ Alt+Shift+Ctrl+1~9を(なし)にクリアする場合
$_=62~70
$KEY_SEQUENCE="%L%S%T%K{DOWN " + $_ + "}%C^{HOME}{TAB}^{HOME}"; run "wscript.exe \"C:\\Program Files\\Hidemaru\\Macro\\KeyboardMacro拡張\\KeyboardMacroEx.vbs\" \"" + $KEY_SEQUENCE + "\" \"Not fond ERROR\" /W:\"キー割り当て\" /T:5"; keyassign;

○ Alt+Ctrl+Num0~Num9を(なし)にクリアする場合
$_=75~84
$KEY_SEQUENCE="%L%T%K{DOWN " + $_ + "}%C^{HOME}{TAB}^{HOME}"; run "wscript.exe \"C:\\Program Files\\Hidemaru\\Macro\\KeyboardMacro拡張\\KeyboardMacroEx.vbs\" \"" + $KEY_SEQUENCE + "\" \"Not fond ERROR\" /W:\"キー割り当て\" /T:5"; keyassign;


CANON「PIXUS mini260」使用感想文(その2)

2007年07月21日 04時31分30秒 | 新商品
先ほどの感想文は「PIXUS mini260」の性能というよりは、フォトレタッチができていない状態なので、写真屋さんの写真と画質を比較できるような状態になっていないということと、あとは、単に一般論として、インクジェックの保存性は、心配だよねぇという感想でしかありませんでした。

「PIXUS mini260」自体は、デザインも、それなり良くて、結構、気に入っているのですが、一番、やばいのが、最初、箱を開けて、クイックスタートガイドみたいな大きな紙を開きながら、それにしたがって、セットアップ作業をしていたのですが、もう、最初の1/3ぐらい進んだところで、にっちもさっちもいかなくなってしまうという状態が続いたのには参りました。インクカートリッジを置く台にあたるようなところを「プリンタヘッド」と呼んでいるらしいのですが、プリンタヘッドとインクカートリッジをガイド通りにセットアップして、電源を入れると、いきなり、エラーで、「プリントヘッドの種類が違います」という表示です。

そこで、最初、このエラーの内容が、理解ができず、マニュアルを最初から最後まで読んだり、WEBを検索したりしたら、やっと、インクカートリッジを置く台にあたるようなところを「プリンタヘッド」と呼んでいることが判明して、その対処方法が、「一度プリントヘッドを取り外して、再度プリントヘッドを取り付けてください。それでも直らない場合は、プリントヘッドの交換またはプリンタ本体の修理が必要な可能性があります。」とあります。そこで、何度も何度も、いろいろな力の入れ具合などを変化させたり、プリンタヘッドとカートリッジを最初から組んだり、ばらしたりと、いろいろな組み合わせで、試していたのですが、どうにも、状況が変わりません。

ということで、どうやら、初期不良ではなかろうかという結論になって、キャノンのサポートにもでも持ち込もうと思ったのですが、どうも、キャノンのサポートは、全国に数箇所しかなくて、少なくと、私の近所にはなく、このいう場合には、宅配便で発送する必要がありさらに、その費用が自分持ちという記述があって、頭に血が上ってしまいました。

そこで、サポートに電話をする前に、気を静めるために、一服をして、念のため、もう一回、クイックスタートガイドみたいな大きな紙の最初の手順から、落ち着いて、同じことをしていったら、なんと、今度は、動作を始めたではないですか、、、、。

かなり、心配でしたが、もう、「プリンタヘッド」のところを外したりすることはないだろうし、あと、こんな状態で、宅配便で送りつけても、「現象、再現せず」というコメントが付いて、そのままの状態で戻ってきたりしそうなので、とりあえず、このまま、少し、様子を見ることにしてみました。

しばらく、何の問題もなく、いろいろなものを印刷していました。ただ、この前、ピューロランドに行くことになって、その出発直前に、「そういえば、ビューロランドのWEBページの今日のイベントタイムテーブルとかの情報がないかなぁ、あれば、車の中で、いろいろと、計画ができるよね。」とか思い付いて、大慌てでパソコンを立ち上げて、チェックしたら、まんまと、今日、入り口で配ってくれるはずの、その日のイベントののタイムテーブルのPDFファイルが置いてありました。そこで、大急ぎで、「PIXUS mini260」を出して、印刷をしようとしたら、よりによって、こんなときに、「プリントヘッドの種類が違います」エラーが発生して、何度も何度も、また、最初のセットアップ時のように、いろいろなパターンを試したのですが、結局、時間切れで出発時間になってしまいました。

それからしばらく経って、そういえば、「PIXUS mini260」のエラーはどうなっているだろうかと思って、電源を入れたら、やはり、「プリントヘッドの種類が違います」エラーが発生しているままだったので、今度こそ、キャノンのサポートに電話をしてやろうと思って、また、一服して、また、念のため、もう一回、クイックスタートガイドみたいな大きな紙の最初の手順から、落ち着いて、同じことをしていったら、なんと、また、動作を始めたではないですか、、、、。なんだか、気が萎えて、サポートに電話をする気力がなくなり、今に至っています、、、。

なんだかなぁ、、、。
まぁ、プリンタも過当競争で、こんな綺麗なカラー液晶が付いて、単体でかなりの写真補正処理できるぐらいの強力なMPUなりシステムLSIが入っている精密なメカトロ製品を、1万円台で売らなきゃいけないので、キャノンと言えども、品質も落ちちゃうのかなという感じがしています。

CANON「PIXUS mini260」使用感想文

2007年07月21日 04時01分40秒 | 新商品
以前、フォトプリンタが、欲しくなっている。CANON「PIXUS mini260」を、購入しています。

ここのところ、ブログをつくる暇があれば、マクロを作っていたので、全く、感想を書いてしませんでしたが、ここまで使ったところの感想を書いておこうと思います。

○ 画質は、まぁまぁかなぁ?まだ、良く分からない、、、。

PIXUS mini260を買うまでは、いつも、写真屋さんに出していたのですが、この写真屋さんの仕事ぶりには、いつも感心をしていて、パソコンの画面上では、暗かったり、ざらついていたり、若干のピンボケでも、ほとんど感心するほどの綺麗な仕上がりであがってきていて、非常に、大満足をしていました。(新人のバイトがやってしまったのか、忙しすぎて、手を抜かれたのかどうか分かりませんが、いつものとんでもなく綺麗な仕上がりではないときが何度かありましたが、それを除けば、私としては、満点をあげたいぐらいのCS度のDPEショップでした。)

まぁ、このDPEショップの仕上がりぐあいは、もしかしたら、本当にプロに言わせると、色調整が不自然すぎるとか言われちゃいそうなほどのかなり、派手目なのですが、ただ、素人というか、私の家族が、この色合いに慣れてしまっているので、まずは、単に、PIXUS mini260のメモリカードを指して、自動調整で印刷した写真は、どうも、パッとしない感じになってしまって、デジタル音痴のうちの奥さんにも、「なんか、白っぽいねぇ、、、。」という感想をもらってしまいしまいました。

たぶん、単に、派手目の色に慣れてしまっているだけ(たぶん、ときどき、親からもらうAPSカメラで撮ったものを\15/枚程度のコンビニとかでプリントしたもの程度の色具合)なので、パソコンで、派手目の色調整をすれば、良いだけなはずなのですが、PIXUS mini260添付のEasy Photo Printで、色調整に関しては、VIVIDというチェックボックスしかなくて、これにチェックを入れても、どうも、思ったよう十分な色彩にならず、もっと、写真加工用のソフトをもってこないと駄目そうです。

で、GoogleからPicasa2をインストールしてみました。CanonのEasy Photo Printよりは、調整の項目があるのですが、肝心の色を派手にするような調整項目がみあたりません。

そこで、しょうがないので、GIMPでも使おうと思ったのですが、以前、Adobeのコンシューマ向けのフォトレタッチソフトを使っていて、それなりに使っていた(ただ、もはやWindowsXPで使う気がしないほど、立ち上がりまでにいろいろとエラーの乗り越える必要があって、アンインストールしてしまった)ので、なんとなくGIMPの使いづらさに面倒になって、ちゃんとした商用のソフトも、試してみたくなって、SourceNextあたりを探っていました。そして、PaintShopProあたりはどうかなぁと思って、SourceNextでは試用版がないので、本家のCorelから最新版のPaintShopProの試用版をダウンロードして、評価してみようとインストールしたところで止まっています。


○ 耐久性というか保存性は、まだ、かなり心配

以前のインクジェットで印字したものを、家の外の玄関の表札のところに耐水性用紙に印字して、貼り付けたら、もう、1週間ぐらいで、色が抜け始めて、良く覚えていませんが、印象としては、1ヶ月ぐらいで、真っ白になってしまったような気がします。また、部屋の壁に貼っておいても、1ヶ月もしないうちに、色あせてしまったような気がして、何しろ、インクジェックで印刷したものは、全く保存には向かないよねぇという印象を持っていたので、保存用の写真は、ちゃんと、写真屋さんに出していたのです。

ただ、最近のプリンタのカタログを見ると、保存性100年間!、耐光性30年!、耐ガス性10年!とか自慢しているので、さすがに、耐久性については、当時の技術からは、目覚しい進歩しているのだろうと思って、期待していました。

こっそり会社のラベルプリンタで作った表札は、何年もの日差し、風雨にさらされて、風化して汚らしくなりはじめていましたが、とりあえずは、判別できて、表札としては機能していました。で、PIXUS mini260を買って、喜び勇んで作った表札は、なんと、1ヶ月ぐらいたったところで、色が薄くなり始めてしまったのです、、、。まあ、確か、以前は、1ヶ月たったところで、判別ができないほどに真っ白になっていたような気もするので、それに比べれば、格段の技術の進歩と言っても良いのかもしれませんが、それにしたって、ラベルプリンタの出力は、5年間は表札としては機能してくれたことに比べて、1ヶ月で、色が抜け始めるとなると、年単位でもつはずがありませんよね、、、。確かに、今、耐光性30年の条件をみたら、「直射日光のあたらない室内」とあるので、表札は、ちょっと、過酷すぎたようです。

あと、耐湿性用紙の性能も知りたくて、お風呂場のシャンプーの容器とか、キッチンの洗剤の容器にラベルシールを張って試したら、もう、1週間もたたないうちに、カエルなど挿絵がゆがんできて、1ヶ月ぐらいたった今となっては、お化けのような状態になってしまっています。

さらに、今回、オーバーコート付昇華型ではなくて、あえて、インクジェックプリンタにチャレンジした理由は、耐久性に問題が解決できていれば、普通紙も含めて、いろいろな用紙が豊富にあるインクジェックの方が楽しそうだからということで、プリンタと一緒に、アイロンプリント用紙も買っていました。で、アイロンプリント用意に、子供の名前の入ったものを作って、子供の服に入っていったら、まず、買ったときに見落としていたのですが、反転印刷して、裏から透かすので、濃い色の服は、全く判別不能なタイプの用紙で、最初から失敗です。そこで、まぁ、白とか薄い色の服に、名前をアイロンプリントしていって、1ヶ月ぐらい経って、何回洗濯したかどうか分かりませんが、ほとんどのものは、すでに、ぼろぼろになっていて、汚らしくなってしまっています。

ということで、まぁ、写真屋さんで印刷してもらった写真と比較して、どうのこうのというわけではありませんが、やっぱり、インクジェットは、インクを吹きかけるだけなので、少なくとも、リボンを溶かして、貼り付けるようなタイプのものと耐久性を論じるのは間違っていそうですし、私の親が何十年も前に撮って写真屋さんで印刷してもらった写真は、今だに残っている実績を考えると、今一歩、実績を確認できていないインクジェックプリンタで印刷した写真の保存性は、ちょっと、心配になっています。

Creative ZEN Stone Plus ZN-STP2G-DB ダークブルーを注文しちゃった

2007年07月21日 02時30分13秒 | 新商品
Creative ZEN Stone PlusのメーカーWebサイト
Creative ZEN Stone Plusのインプレスの紹介記事

最近、健康に目覚めて、ここのところ、早朝、マウンテンバイクで、往復10Kmぐらいのサイクリングロードを45分ぐらいかけて、走っているのですが、どうも、自分の感じとしては、単に、心肺機能を維持をする程度の運動量としか思っていません。確かに、帰宅してくると、汗ダクにはなっているのですが、心臓とか筋肉的に負荷がかかっている感じがしていないのです。

まぁ、これまで、長い間、ほとんど、運動らしいことをしていなかったので、まずは、軽い運動を楽しみながらしようと思って、マウンテンバイクにしてみて、まぁ、思った通りという感じですが、なんとなく、次の段階として、ウォーキングを試してみようかと考えているのです。

で、NIKEのランニングシューズを買い込んできたのですが、さらに、ウォーキング中の時間を使って、まずは、英語の勉強でもしようかと思ったら、急にメモリオーディオプレーヤが欲しくなって、先ほど、「Creative ZEN Stone Plus」をAmazonで注文しちゃいました。

たまたま、この前、電気屋さんで、メモリオーディオプレーヤのコーナーを見ていたて、AppleのiPod Shuffleのデザインの秀抜さに感心をしていたのですが、とりあえずは、9,800という値段に、「ちょいと、高いなぁ、、、。」と思って、「チャチイのだったら、5,000以下であるはずだよね」とか思って、iPod Shuffleが気になりながら、その場で買わずに、家に戻ってしまいました。

で、今日、kakaku.comで、いろいろ探っていたら、(Plusじゃない方の)Creative ZEN Stoneが、\4,000程度で、「コレコレ、こんな程度の値段の、コノチャチさ」と思って、これにしようと思ったら、「Creative ZEN Stone Plus」の方の存在に気が付いて、「なになに、有機ELディスプレイ付で、ストップウォッチに、さらに、ボイスレコーダだぁ」、、、。

マウンテンバイクに乗っていて、負荷を調整しようとしたときに、「まずは、ストップウォッチでペースを測らないとなぁ」、いつも思っていました。

さらに、以前、使っていた携帯電話にボイスレコーダが付いていて、ときどき、ちょっとだけ便利に使っていたのですが、新しいのになったら通話中でない普段使いのボイスレコーダ機能というものが見当たらなくて、かなり不満に思っていたり、さらに、最近は、きわどい内容の会議とかでは、こっそり、議事内容を録音をしておいたりしたいときあったりした(というか、ときどき、相手にされることがあった)ので、長時間録音できる隠し撮り用の極小ボイスレコーダも欲しかったりしていました。

ということで、ほとんど衝動的に、他のものとは、あまり、じっくり、比較検討もせず、本物も見ないで、クリップ付きシリコンスキンとのセットを衝動的に注文しゃいました。

ただ、このまえ、SonyのデジカメのT1を買ったときに、「やっぱ、この手のものは、まずは、持って嬉しくなるようなデザインだよなぁ、、、」と思ったばかりのところに、また、本当に使うんだかどうか怪しい機能で選んでしまったところに、値段が結局、iPod Shuffleと同じぐらいになっちゃって、ちょっとだけ、心配しています。

KeyboardMacroEx v0.02のTODOと拡張案

2007年07月20日 05時38分48秒 | 秀丸エディタ Tips
v0.000001からのToDoや拡張案を見直してみて、今回のものとマージして、まとめておきました。

■ TODO

○ 評価をほとんどしていないし、かつ、結構、基本なところに手を入れた可能性があるので、ソースとコンフィグを見ながら、ホワイトボックステストをしないとまずそうです。

○ 先ほど、急いで、コメントを付けておいてた「SAVE_DIRがないとエラーになる 」件は、修正しないとまずいですね。

○ エラーチェック
現状は、とりあえずのコードなので、ほとんど、エラーチェックをしていない。気づいた部分には、ソースコード中に、「★[TODO]」でコメントを入れている。

○ 実行速度
反応速度が、ワンテンポ遅れるのが気に入らない。(特に、ポップアップメニュー表示)
まずは、debuginfo文が大量に入っているので、その影響度合いを調査した方が良いかも。
そのあとは、実行時間のプロファイリングをして、チューニングをすることになるが、秀丸エディタのマクロ実行エンジンの速度の問題で、対応が厳しそうな場合には、WSH側に、多くの処理をさせた方が速くなる気がする。

○ 連続押しで、エラーになりそう。

○ マクロ登録時のコメントでキャンセルをすると、デフォルト(保存日)のコメントにするだけだが、本当は、登録せずに、キャンセルできるようにした方が良いはず。

○ disabledrawからenabledrawしたときに、画面調整をしたはずだが、うまくいっているか?


■ 以下は、今後の拡張案

○ EVAL文中の特殊変数の拡張
とりあえず、最初からおごるとなかなか動き始めないので、EVAL文の中の特殊変数として、$_だけを用意したが、EVAL文中の特殊変数は、いくらでも、拡張できそう。

・「#_」は、「val($_)」に展開すると、一手間省けそう。

・ 現状、「$_」は、一つしか展開していない。複数の「$_」の対応について、少し、検討する必要があるはず。(全て、同じ文字列に展開するか、、。ただ、複文の場合には、それ以前の左辺値が文字列のものを参照するとか、、、。)

・ 表記は考えていないが、クリップボード履歴機能と組み合わせても、面白いかも、、、。

○ EVAL文のヒストリ機能
現状は、一回前のEVAL文を、EVAL文のinputboxに入れておく程度の対応しかしていないが、なんとか、昔に指定したEVAL文を参照できるようにならないだろうか?
一番安直なのは、クリップボードに自動的にコピーして、秀丸のクリップ履歴機能に頼れるようにするのも一案だが、これ以上になると、専用のメニュー面を用意するか、ヒストリ機能つきのコンボボックスのGUIになるように、WSHなり田楽DLLなりにUIを変更する必要があるかも。

※ EVAL機能は、非常にプリミティブなので、何でもできるようたが、指定が面倒すぎて。使わない恐れもあるし、作者以外が、この機能を理解できくなる恐れが高い、、、。デフォルトのコンフィグでは、無効にしておいた方が良いかも。(ただ、私(ymiz777)が使いやすければ、それだけ良いので、気にすることもないか、、、。)無理に難しくして、他の人に理解不能にしまうよりは、もう少し、自分自身で、使い込んでみてから、便利そうな特殊変数を入れていった方が良さそう。

○ カレントのキーボードマクロを実行について
秀丸エディタでキー操作の記録中に、KeyboardMacroExのポップアップメニューを表示して使用するようなキーボードマクロは、そのまま、秀丸エディタで再生をすると、うまく再生できない件は、対処が厳しいので、考えないことにする。ただ、KeyboardMacroExのポップアップメニューの中から、カレントを実行したときに、現状は、毎回、loadmacroをして、変換しょりをしている。本当は、一度、KeyboardMacroExのポップアップメニューの中から、カレントを実行したら、変換後のマクロを呼び出すexecmacroをsavemacroしたいところ。ただ、変換したものを直接、savemacroしていた頃には、用意に対応できていたが、今回、v0.02で、~KeyboardMacroExKey*.macファイル呼び出しをsavemacroするような構造にしたので、かなり、厳しい。

loadmacroをしたときに、マクロ文の内容、特に、execmacroの呼び出し先のチェックとともに、コメント等にもマジックフレーズを入れておいて、チェックすることで、一度、変換したマクロを呼び出している場合には、何もせずに、実行するようにするだけとか、呼び出し先(変換済みの.mac)を、~KeyboardMacroExKey*.macファイルにコピーするような構造にする必要があるかもしれない。


○ 記録中の登録について、
今回v0.02では、ショートカットキーのダイレクト登録のときだけ、マクロの終了と登録をできるようにしてみた。
ポップアップメニューの方からも、HIDEMARU_KEYMACRO_ENDキーが定義されていたら、記録中でも、登録メニューに遷移できるようにして、マクロの終了と登録をできるようしても良いかもしれない。

○ UIの再検討
現状レベルの設定であれば、ポップアップメニューで、モードをトグルするような設定方法でも、これは、これで、結構、以外に、快適に使えますね。
ただ、今後、もし、拡張を続けていって、いろいろと、複雑な設定をさせるようになると、さすがに、このポップアップメニューだけでは、破綻するような気がする。
田楽DLLとかHTAのダイアログボックスで、設定させるようなことも、いつか、考える必要がでてくるはず。

○ 秀丸エディタのキー操作記録状態の取得 CheckRecordingStatus:では、VBSを呼び出して、「記録中!」というタイトルウィンドウを探すことにしてしまったが、もっと、エレガントな方法はないのだろうか?
このVBS呼び出しは、WSH立ち上がり後、一回のチェックで、OK/NGが判断できるので、速度的には、あまり、気にならないようだったが、ただ、あまりにも、きわどすぎる。

○ CaputureCurrentKeyboardMacroルーチンからKeyboardMacroEx.macを使って、「キー操作の保存」ダイアログを操作するとき、300ms周期ポーリングとかアクティブ後100msウェイトとか、いろいろと、マージン時間をいれている。このあたりを調整すると、きびきび動くようになるかもしれないが、環境やシステム状況の状況に影響されるので、何か、対策がないかを考えたい。(そもそも、こんなきわどいことをしなくても、もっと、自然に、保存する方法がないかも、調査したい。)

○ 選択範囲内でリピート機能:
以前のブログにも書きましたが、マクロの中で、開始と終了を記録しても、マクロ処理で、位置が変化してしまうため、単純には、無理。やるとしたら、マークを挿入したいところだが、選択範囲内にマークがあると、矛盾が起きてしまうため、これも厳しい、、、。

○ キーボードマクロ用一時変数値機能
現状は、単に初期値を設定して、挿入したら、インクリメントするだけ。
この機能に関連して、以下のような拡張のアイデアもある。
ステップ数設定
書式設定 : 幅、右寄せ、カンマ区切り、基数指定(hex/dec/oct/binなど)
数値以外日付/曜日などの対応(Excelが参考になるか?)

さらに、今は、一つしか用意しなかったが、複数の一時変数のサポートするアイデアもある。

○ 一時バッファの内容の編集機能

○ ダイアログボックスの入力待ちで止まってしまうような機能についても、パラメータ設定も含めて、先に進めるような機能。

以下までくると、レコーディング自体をマクロがしないと実現できないかも?

○ 外部コマンドを実行するようなマクロの実現
○ 他のファイルを開いたり、行ったりきたり、するマクロの実現

たぶん、KeyboardMacroEx.macの中の「拡張のキー操作の記録開始」記録開始をさせて、KeyboardMacroEx.macの「外部コマンドを実行」とか、「他のファイルを開く/切り替える」「元のファイルに戻る」を使って、キーボードマクロを作ってもらうしか方法がなさそう。つまり、KeyboardMacroEx.macの管理下で、秀丸のキーボードマクロの記録開始/終了を繰り返し操作して、終了時に、 KeyboardMacroEx.macのファイルに取り込んだものを組み合わせるアイデア。




▲ 環境変数、レジストリやINIファイル等を参照/設定する機能
→頻繁に使用すると思えないので、今回、追加したevalで対応できるはずなので、対応する必要なし。

▲ 条件分岐の実現
例えば、カレントのキーボードマクロ内の最後検索の失敗したときに実行する挙動を定義させたりするのもかしれない。
→ ここまでくると、直接、マクロを編集させた方が分かりやすいので、対応する必要なしと思う。

KeyboardMacroEx v0.02

2007年07月20日 04時29分51秒 | 秀丸エディタ Tips
まだ、未評価状態で、何らかのバグが紛れ込んでいる可能性が非常に高い感じがしています。
ただ、評価開始前のバックアップということで、現状の状態をアーカイブして、アップロードしておこうと思います。


変更内容は、以下の通り。

○ v0.02 (2007/7/20)
・KeyboardMacroEx.ini v0.01→v0.02からの変更点
(1) [HidemaruControl]セクションにHIDEMARU_KEYMACRO_ENDキー追加
(2) [Eval]セクションとEVAL_STATEMENTキーの追加

・KeyboardMacroEx.mac v0.01→v0.02からの変更点
(1) 秀丸エディタでのキー操作記録中にダイレクト登録ショートカットキーを
有効化。
(2) EVAL文実行機能の追加
(3) キーボードマクロのカレントへの復帰時、単純にロードすると、記録中呼
び出しヒストリファイルとのマージ処理等で、サイズが大きくなっている
ために、登録が失敗することがあった。このため、ロードするマクロは、
指定されたマクロファイルをexecmacro呼び出しに変更。
(4) 保存メニューと復帰メニューでタイトルや区切り線を選んだときに無意味
にエラー発生をしていたため、無視するように変更。
(5) キーボードマクロ用一時変数値の設定時に、キャンセルすると、0になっ
てしまっていたため、キャンセルできるように変更。
(6) $CURRENT_KBM_TMP_SAVE_FNAMEは、カレントのキーボードマクロ専用化。
別途、記録状態ステータスチェック、EVAL実行、カレントバッファ登録時
に使いまわすテンポラリファイル名$TMP_FNAMEを定義。
(7) マクロの実行前後で検索系ダイアログの状態が変化していたため、ユーザ
の検索系ダイアログの状態の保持して、復帰するように変更。

・KeyboardMacroEx.vbs v0.01
(変更無し)


※ 主な追加機能としては、「秀丸エディタでのキー操作記録中にダイレクト登録ショートカットキーを有効化。」と「EVAL文実行機能の追加」ですが、「キーボードマクロのカレントへの復帰時、単純にロードすると、記録中呼び出しヒストリファイルとのマージ処理等で、サイズが大きくなっているために、登録が失敗することがあった。このため、ロードするマクロは、指定されたマクロファイルをexecmacro呼び出しに変更。」は、結構、構造的にきわどいところを触ってしまったような気がして、かなり、いろいろなところへの影響度をチェックしないと、まずそうです。


ファイルのダウンロードは、以下からできるようにしてあります。

甘党のプログラマのファイル保管庫」の「秀丸エディタ関連のマクロ」ページの「■ 秀丸エディタキーボードマクロ拡張」

shortcut_replica.htaとFlexible Renamerと、これまでの苦労の記録

2007年07月16日 06時11分17秒 | 技術感想
ところで、shortcut_replica.htaなんてスクリプトを作った理由ですが、最近、HTAなるものがあることを知って、このHTAを使って、何かを作りたくなっていました。

というよりかは、趣味にビデオ編集作業の中で、一番面倒なところの効率化をしようと考えている一貫の中で作ってみました。これまでの苦労の記録も含めて、ブログに記録しておこう、、、。)


撮り溜まってしまっている子供たちのビデオを編集しているのですが、このビデオ編集をするときに、まず、T1でとった動画のファイルを日付と時間が分かるようにリネームしておいて、で、編集ソフト(SourceNextのCyberlink PowerDirector3)で、まずは、内容を確認しながら、ストーリボードを作って、それから、タイムラインで、トランジションと、ビデオ音声の音量を調整して、そのあと、最初と最後の調整をして、最後に、タイトルで、説明をつけたりします。この説明をつけるときに、ファイル名に日付と時間が入っていると、便利なのです。

で、子供が2人いて、あるイベント日のビデオであれば、問題ないのですが、一番大変なのが、普段の日常を、ある程度まとめるビデオを作るときに、撮った生のビデオの中をチェックする、一番、大変なところです。

1人目の子供のときには、編集が済んだイベント以外で取りこぼしたデータを、チェックするのは、大変ですが、しょうがないです。で、2人目の子供ができたときに、下の子の日常をテーマにしたビデオの中に、ついでに、家族の記録になるように、上の子のものを入れてみたのですが、どうも、ビデオの時間はながくなるし、それに、なんだか、内容が発散して、やはり、下の子の日常をテーマにしたら、下の子だけにした方が良さそうです。で、次は、ビデオをチェックしながら、これは、使えそうというデータがあったら、まず、ショートカットをデスクトップに作っておいて、それをまとめておくようにしました。

最初は、手作業で、.lnkファイルのプロパティ(Alt+Enter)のリンク先のフィールドをコピーして、秀丸エディタ上で、バッチファイルを作って、ファイルの複製を一箇所に集めるようにしました。(編集が終わったら、外付けHDDに退避してしまうし、ビデオ編集ソフトに、.LNKを指定しても、リンクを追ってくれないので、結局、人間が、.LNKのプロパティのリンク先のフィールドをコピーして、インポートさせるのを繰り返すので、バッチで、一つのフォルダに集めた方が、結局、楽。)


これらの一連の作業の中で、ファイルのリネームに関しては、Flexible Renamer Version 7.3なるものを見つけて、ちょっと、調査してみようと思っています。.LNKのリンク先のファイルをコピーするツールの方が、どうしても、見つからなくて、で、最近、WSHを触るようになっていたところに、ショートカット関連のオブジェクトもあったので、WSHで、すぐに作れそうと思って、どうせならと、勉強がてら、HTAで作ってみました。


ちなみに、ファイルのリネームについては、これまでは、以下のように、少しだけ、自動化処理をしていました。(記念の記録)

(1) 秀丸エディタの「プログラムの実行(X)」のコマンドヒストリをベースに、以下のコマンドを実行。
『cmd /c dir "D:\....\MOV*.MPG" > c:\temp\1.bat』
(D:\....の部分を、エクスプローラのパスからコピーしたものに置き換えていた。)

(2) 秀丸エディタで、c:\temp\1.batを開いて、秀丸エディタで、例えば、以下のように、バッチファイルを作成。

 ┌───────────────────────────────────────┐
 │  ドライブ D のボリューム ラベルがありません。                                │
 │  ボリューム シリアル番号は ********* です                                    │
 │                                                                              │
 │  D:\xxxx\デジカメ\2007-07-15 のディレクトリ                                  │
 │                                                                              │
 │ 2007/07/14  11:59         5,071,742 MOV01869.MPG                             │
 │ 2007/07/14  12:09        14,882,347 MOV01872.MPG                             │
 │ 2007/07/14  12:22        29,434,167 MOV01873.MPG                             │
 │ 2007/07/14  12:43        19,994,866 MOV01874.MPG                             │
 │ 2007/07/14  12:46        25,925,170 MOV01878.MPG                             │
 │ 2007/07/14  15:42        19,575,050 MOV01879.MPG                             │
 │ 2007/07/14  15:43        19,178,786 MOV01880.MPG                             │
 │                7 個のファイル         134,062,128 バイト                     │
 │                0 個のディレクトリ   ***************** バイトの空き領域       │
 │                                                                              │
 └───────────────────────────────────────┘

    ↓
 
 ┌────────────────────────┐
 │ d:                                             │
 │ cd "D:\xxxx\デジカメ\2007-07-15"               │
 │                                                │
 │ ren MOV01869.MPG 20070714_1159_MOV01869.MPG    │
 │ ren MOV01872.MPG 20070714_1209_MOV01872.MPG    │
 │ ren MOV01873.MPG 20070714_1222_MOV01873.MPG    │
 │ ren MOV01874.MPG 20070714_1243_MOV01874.MPG    │
 │ ren MOV01878.MPG 20070714_1246_MOV01878.MPG    │
 │ ren MOV01879.MPG 20070714_1542_MOV01879.MPG    │
 │ ren MOV01880.MPG 20070714_1543_MOV01880.MPG    │
 └────────────────────────┘

最初の2行は、手で、編集。
「2007/07/14  11:59         5,071,742 MOV01869.MPG」を「ren MOV01869.MPG 20070714_1159_MOV01869.MPG」に変形するのは、以前、作ったキーボードマクロが保存してあって、以下のようなマクロになっていました。

    insert "ren ";
    golineend;
    wordleft;
    wordleft;
    insertreturn;
    beginsel;
    golineend;
    copy;
    golinetop;
    up;
    wordright;
    paste;
    insert " ";
    right;
    searchdown "/" , regular, nocasesense, hilight;
    if( ! result )  beep;
    delete;
    searchdown "/" , regular, nocasesense, hilight;
    if( ! result )  beep;
    delete;
    searchdown " " , regular, nocasesense, hilight;
    if( ! result )  beep;
    delete;
    delete;
    insert "_";
    searchdown ":" , regular, nocasesense, hilight;
    if( ! result )  beep;
    delete;
    searchdown " " , regular, nocasesense, hilight;
    if( ! result )  beep;
    beginsel;
    wordright;
    golineend;
    delete;
    insert "_";
    delete;
    golinetop;
    down;


このとき、パッチファイルを見直して、同じファイル名になりそうであれば、名前がぶつからないように、~(1).MPG、~(2).MPGなどに変形する。


(3) この1.batを、秀丸エディタの「プログラムの実行(X)」のコマンドヒストリから選択して、実行。


shortcut_replica.hta v0.01のTODO

2007年07月16日 06時04分33秒 | 技術感想
どうでも良いので、これ以上、拡張するつもりは、毛頭ありませんが、一応、作りながら、思いついたTODOを忘れないうちに、リストにしておきます。

・ 起動パラメータで、ディレクトリパスを取った方が便利か?
このHTA(もしくは、そのショートカット)をデスクトップに置いておいて、エクスプローラからフォルダをドラッグアンドドロップすると、ディレクトリ指定のテキストボックスのデフォルト値に設定すると、便利かもしれない。さらに、フォルダでなくても、ファイルであっても、そのディレクトリパスにするとかもありかも。

・ 起動パラメータで、ディレクトリパスが指定されなかったら、HTAファイルがあるフォルダを、ディレクトリ指定のテキストボックスのデフォルト値に設定すると、便利かも。

・ フォルダ選択、または、ファイル選択のコモンダイアログを使って、ディレクトリ指定もできるようにすると、便利かも。

・ コピー中に、コピーの状況が分かるようにしたい。
HTAというかDHTMLのスクリプトの中で、TEXTAREAのVALUEに文字列を設定して、それを表示に反映させる方法があると良いかもしれないが、未調査。


おっと、まずは、2番目のHTAファイルのあるフォルダをデフォルト設定するぐらいは、やれば、良かったかな、、、。

ショートカットリンクの複製 shortcut_replica.hta v0.01

2007年07月16日 05時07分32秒 | 技術感想
指定ディレクトリにあるショートカットのリンク元ファイル群を複製するだけの単純なHTA(HTML Application)です。

ファイルのダウンロードは、以下からできるようにしてあります。

甘党のプログラマのファイル保管庫」の「その他のスクリプト」ページの「■ ショートカットリンクの複製」

禁煙セラピーで、禁煙中

2007年07月11日 05時27分38秒 | 読書感想
Allen Carrの禁煙セラピーを読んでしまって、今、禁煙中なのです。

実は、この本を、読む前には、ほとんど、タバコをやめるつもりはなくて、単に、興味本位で、どんなことが書いてあるのだろうと、気になって、買って、読んでみただけでした。

そしたら、うそでしょみたいに疑って、ただ、試しにやってみしたら、ほんとに、禁断症状がないのです。

以前であれば、2時間も、体に、ニコチンを注入しないと、フラフラになって、頭が痛くて、何も思考できない状態になって、もはや、この状態になったら、その日は、もう終わってしまって、一度、しっかり、睡眠をとって、体をリセットしないと、どうにもならなかったぐらいの重度の中毒患者でした。

これが、この本の暗示によって、本当に、身体的な禁断症状がでてきていないのです。

たぶん、この本で、洗脳というか、自己暗示を掛けられたからか、もしくは、この本の言うように、身体的な薬物の禁断症状というのは、ほとんど、「タバコが欲しい」という気持ちでしか現れないのが真なのでしょうか。

まあ、どっちでも良いのですが、7/8(日)10:00AMに、この本のほとんど最後の40章「さあ、最後の1本を吸おう」で、その通りに吸って以来、本当に、吸っていないのです。

で、今、「タバコを吸わないのも、ちょっと、寂しい感じもするなぁ、、」と考えた瞬間、本当に、今、頭痛が始まりそうで、「いやいや、効率を上げるには、タバコの時間は、明らかに無駄な時間だよね。」と考えたら、今、頭痛が引きました。

どうゆうことだ、、、こんな自己暗示というか、精神統一みたいな単純な方法で、瞬時に、身体的な変化が起きるなんて、なんだか、不思議というか、キツネにつつまれているような気分です。

※ 本を読んでも、全く、やめられると思っていないかなったので、吸いかけのタバコの残りがたくさんあるのは良いのだが、よりによって、1カートンがマルマル残っているのが、ちょいと、もったいない。

KeyboardMacroEx v0.01 ベータ版のTODO

2007年07月11日 04時59分39秒 | 秀丸エディタ Tips
TODOは、大体つぶしたが、そのほかの気になる点とか拡張案については、何もできていない。

■ TODO
○ 保存や復帰のときに、変換したマクロが大きくなっているので、復帰に失敗する場合がある。
ちょっとだけ、対処が面倒なので、対応を後回しにした。一時的なマクロファイル作成して、そのマクロを呼び出すように、Loadrecordする。

○ エラーチェック
現状は、とりあえずのコードなので、ほとんど、エラーチェックをしていない。気づいた部分には、ソースコード中に、「★[TODO]」でコメントを入れている。

■ ちょっと、気になっている点の追加
○ 実行速度
反応速度が、ワンテンポ遅れるのが気に入らない。(特に、ポップアップメニュー表示)
まずは、debuginfo文が大量に入っているので、その影響度合いを調査した方が良いかも。
そのあとは、実行時間のプロファイリングをして、チューニングをすることになるが、秀丸エディタのマクロ実行エンジンの速度の問題で、対応が厳しそうな場合には、WSH側に、多くの処理をさせた方が速くなる気がする。

○ 連続押しで、エラーになりそう。


■ KeyboardMacroEx.macの将来の拡張案のアイデアの追加
○ 記録中に登録をできるようにすると良いかもね。
記録中に、ショートカットなりで登録使用したら、questionで記録を終了するかどうかを確認するかな?

○ メニューから、記録の開始と終了をできると良いかもね。


KeyboardMacroEx v0.01 ベータ版

2007年07月11日 04時49分30秒 | 秀丸エディタ Tips
ちょっと、あまりに、気になって、他のことが手がつかないので、とりあえず、まとめました。

大きな機能追加としては、「ダイレクト登録/呼び出しのためのショートカットキー機能」の部分をコーディングしたというところでしょうか?


・ キーボードマクロ一時バッファ(最大9個)
・ 一時バッファ登録時のコメント
・ キーボードマクロのリピート呼び出し機能
・ 検索失敗時のマクロ実行中止機能
・ disabledrawによるマクロ実行中の画面ロック指定
・ 繰り返しで連番数を作るためのキーボードマクロ用一時変数機能
・ 一時バッファへ登録済みのキーボードマクロを組み合わせて、キーボードマクロを作成可能
・ 全機能は、ポップアップメニューでアクセス可能
・ ダイレクト登録/呼び出しのためのショートカットキー機能


ToDoが残っていますが、まずは、ここまでのところで、ベータ版として、使い勝手を試してみます。


○ v0.01 (2007/7/11)
・KeyboardMacroEx.ini v0.01→v0.000001からの変更点
(1) [HidemaruControl]セクションに、数字キーのベースコード値をコンフィグ
レーションするためのNUMKEYCODE_BASEキーを追加
(2) [LoadRecordDialogBox]セクションのキー名を[SaveRecordDialogBox]セク
ションと一致させた。

・KeyboardMacroEx.mac v0.01→v0.000001からの変更点
(1) クリップボード内容の復旧 : マクロの実行前後で、テキストのクリップ
ボードの内容が変化しないように、初期化で、新規のステルスウィンドウ
にペーストしておき、最後に、コピーして、poppaste
(2) 削除メニューの追加
(3) 復帰メニューの追加
(4) ダイレクト呼び出し/登録ショートカットキー対応

・KeyboardMacroEx.vbs v0.01
(変更無し)

ファイルのダウンロードは、以下からできるようにしてあります。

甘党のプログラマのファイル保管庫」の「秀丸エディタ関連のマクロ」ページの「■ 秀丸エディタキーボードマクロ拡張」

KeyboardMacroEx.macの将来の拡張案のアイデア

2007年07月05日 06時10分37秒 | 秀丸エディタ Tips
秀丸エディタキーボードマクロ拡張用マクロの機能案を検討中、、、の後半でも、KeyboardMacroEx.macの拡張案を書いていますが、それも含めて、コーディングしながら、思いついたアイデアを、忘れないうちに、メモしておこうと思います。

○ UIの再検討
現状レベルの設定であれば、ポップアップメニューで、モードをトグルするような設定方法でも、これは、これで、結構、以外に、快適に使えますね。
ただ、今後、もし、拡張を続けていって、いろいろと、複雑な設定をさせるようになると、さすがに、このポップアップメニューだけでは、破綻するような気がする。
田楽DLLとかHTAのダイアログボックスで、設定させるようなことも、いつか、考える必要がでてくるはず。


○ 選択範囲内でリピート機能:
以前のブログにも書きましたが、マクロの中で、開始と終了を記録しても、マクロ処理で、位置が変化してしまうため、単純には、無理。やるとしたら、マークを挿入したいところだが、選択範囲内にマークがあると、矛盾が起きてしまうため、これも厳しい、、、。


○ バッファの個数を増やすとか、バッファの内容をカレントにコピーする機能とか
バッファのマクロ間に依存関係がない限り、登録場所の変更して、整理できるようになる。ただ、現状は、9個しかないので、本当に、単なる一時バッファとしていか使えないので、整理する必要もない。バッファの個数何十個と増やせるようにすると、一時バッファというよりは、常駐させるためのマクロにもなりそうなので、こうなると、整理するための機能も欲しくなる。このときには、単に、バッファの内容をカレントにコピーする機能で良いかも。


○ キーボードマクロ用一時変数値機能
現状は、単に初期値を設定して、挿入したら、インクリメントするだけ。
この機能に関連して、以下のような拡張のアイデアもある。
ステップ数設定
書式設定 : 幅、右寄せ、カンマ区切り、基数指定(hex/dec/oct/binなど)
数値以外日付/曜日などの対応(Excelが参考になるか?)

さらに、今は、一つしか用意しなかったが、複数の一時変数のサポートするアイデアもある。

○ 環境変数、レジストリやINIファイル等を参照/設定する機能

○ 一時バッファの内容の編集機能

○ 条件分岐の実現
例えば、カレントのキーボードマクロ内の最後検索の失敗したときに実行する挙動を定義させたりするのもかしれない。

○ ダイアログボックスの入力待ちで止まってしまうような機能についても、パラメータ設定も含めて、先に進めるような機能。



以下までくると、レコーディング自体をマクロがしないと実現できないかも?

○ 外部コマンドを実行するようなマクロの実現
○ 他のファイルを開いたり、行ったりきたり、するマクロの実現

たぶん、KeyboardMacroEx.macの中の「拡張のキー操作の記録開始」記録開始をさせて、KeyboardMacroEx.macの「外部コマンドを実行」とか、「他のファイルを開く/切り替える」「元のファイルに戻る」を使って、キーボードマクロを作ってもらうしか方法がなさそう。つまり、KeyboardMacroEx.macの管理下で、秀丸のキーボードマクロの記録開始/終了を繰り返し操作して、終了時に、KeyboardMacroEx.macのファイルに取り込んだものを組み合わせるアイデア。