ShortcutMaker.mac 0.90の試用感想No.00689
tibirin さん 06/05/13 01:53
 
tibirinです。

ぱとさんが苦労しながら簡単な操作での
メールに対するリンク機能を作成されている様なので試用してみました。
かなり辛口な表現もありますが、ご了承下さい。

まず便利だなぁと思う点は

秀丸メールが常駐も含めて起動していない時に
Windowsの適当なフォルダに置いておいた作成済みのショートカットを
起動する事により秀丸メールを起動しかつ指定メールに飛ぶ点です。
Windowsの適当なフォルダにもショートカットを
置いておきたい方にとっては有用でしょう。

秀丸メールでは添付ファイルとして扱えますので
コピー等もし易いでしょう。

ここからが辛口となってしまうのですが、現在の機能では

ショートカットの複数同時作成及び複数メールに同時に添付する事が
出来ません。
50個のショートカットを20個のメールに添付したいという時には
基本的には最低でも50回+20回の操作が必要かつデスクトップが
グチャグチャになってしまいます。
秀丸メールのマクロで選択したショートカットを
新たに選択したメール郡へ添付してやってから
デスクトップ側のショートカットは削除する
なんていうのを作れば少しは楽が出来そうかも?
ですが作るのに骨が折れそうです…

ぱとさんのマクロを試用して私が思いついた
比較的マクロ作成が簡単に出来そうな案を以下に記入しておきます。

ぱとさんの案の方が拡張性がありますし
私自身今すぐにでも欲しい機能ではないのですが…

ずばり
X-Memoに S:テストメール F:受信 A:テストアカウント M:F5C675B8BDDA1Etest@test
を記入して利用するです。

これだけでは?ですので簡単に説明すると

Ctrlを押しながらマクロを実行すると
選択された(複数可)メールの Subject、Folder、Account、Message-Idを
所得してクリップボード又は iniファイルにその情報を保持します。

Shiftを押しながらマクロを実行すると
選択された(複数可)メールに(複数の) X-Memoとして書き込みます。

Ctrl又は Shiftが押されていない状態でマクロを実行すると
選択された X-Memoを元に Folder、Account、Message-Idを所得し
Message-Id検索を実行します。

とりあえず気が付いたものとしては
X-Memoには \を記入する事が出来ませんので
Folderが User\テストフォルダならば User/テストフォルダ等とする。
Subjectが テスト\メールならば テストYメール等とする。

マクロって作っている時が一番楽しいと思いますので
頑張って下さい。

[ ]
RE:00689 ShortcutMaker.mac 0.90の試用感No.00690
ぱと さん 06/05/13 08:22
 
tibirin さん

秀丸メールユーザーのぱとと申します。

要望会議室のproperty@.itemの件ではお世話になりました。

ShortcutMaker.mac の試用と感想ありがとうございます。
tibirin さんのようなマクロの達人が見れば、ぼろぼろのコードなのが見え見えで
しょうから恥ずかしい限りです。

>秀丸メールでは添付ファイルとして扱えますので

ですね。ショートカットファイルを使ってジャンプするというのが、今回のマクロ
のアイデアの肝でしたので、このあたりを評価していただけたのはありがたいです。
基本的にはメニュー操作等からでなく、ショートカットのようなオブジェクトに対
するアクションとしてジャンプ操作をさせたかったのです。デスクトップを含むフ
ォルダにおくにせよ、添付ファイルにするにせよ、いらなくなったらすぐ消せる。
また移動、コピー等も特別な処理が不要ということもありました。

>ショートカットの複数同時作成及び複数メールに同時に添付する事が
>出来ません。

はい、その通りでですね。複数同時作成は工夫次第でできるかもしれませんが、
tibirin さんのおっしゃるとおり、大量になるとデスクトップが何がなんだかわか
らなくなります。

>ずばり
>X-Memoに S:テストメール F:受信 A:テストアカウント M:F5C675B8BDDA1Etest@test

実は、ヘッダにジャンプ情報を入れるというのは、以前 /vF オプションが実装され
た頃に作った Clipping.mac というのでやってます。この時は、メールをクリッピ
ング(スクラップ)用のフォルダにコピーして情報を蓄積していきながら、必要にな
ったら、また元のメールにジャンプできるというような主旨のものとして作りまし
たが、この時は、ヘッダにジャンプ情報を入れました。

tibirin さん のアイデアの X-Memo を使って複数メールへのジャンプ情報を単一
メールにどんどん入れることができるというのはいい感じですね。

/vf オプションって、あまり知っている方がいないんじゃないかと思いますので、
ニーズに従っていろいろな方がこれを使ったマクロを作ってくれると面白いなと思
います。

>マクロって作っている時が一番楽しいと思いますので
>頑張って下さい。

ですね。今回は、自分自身が便利に使いたい形のマクロになりましたので、実際に
ばりばり使って助かっているという部分もあります。

一応現在の方向性としては、Message-id 検索を絡めることで、削除しない限り、元
のメールを絶対に見失うことが無いようにという方向で手直しをしています。

どうも感想ありがとうございました。

----
ぱと

[ ]
RE:00690 ShortcutMaker.mac 0.90の試用感No.00691
tibirin さん 06/05/13 15:29
 
>/vf オプションって、あまり知っている方がいないんじゃないかと思いますので、
>ニーズに従っていろいろな方がこれを使ったマクロを作ってくれると面白いなと思
>います。

/vfオプション自体、起動時のコマンドラインの一部ですので
外部ツールから秀丸メールを動作させたい方にとっては有用ですが
内部で全て処理してしまう人にとっては不必要ですからね。
私はとりあえず使わないといけない場面がないです…


>一応現在の方向性としては、Message-Id 検索を絡めることで、削除しない限り、元
>のメールを絶対に見失うことが無いようにという方向で手直しをしています。

Message-Idを利用した検索で、どの様なケースでも絶対に見失わずかつ通常は高速に
動作するにはかなりの労力を要すると思います。
手順的には

(1) 特定のフォルダで Message-Id検索を FindUpInclude及び FindDownIncludeで
    検索する。
   
(2) 見つかればあるフラグを ONし FindUp及び FindDownで再検索を行う。
    再検索されれば同じ Message-Idを持ったメールが複数あるので
    検索して一覧作成を実行してどのファイルを開くか選べる様にする。
   
(3) (2)でもみつからなければ特定フォルダで Message-Idを使用した
    通常の検索を行う。((2)の様な処理もする。)
    なぜこんな事をするかというと Message-Id検索は
    Message-Idが複数あるメールでは最後のもののみ検索対象となるからです。
   
(4) (3)でもみつからなければ全てのアカウントで
    Message-Id検索を実行。(含む(2))
   
(5) (4)でもみつからなければ全てのアカウントで
    Message-Idを使用した通常の検索を実行。(含む(2))

(6) (5)でもみつからなければ現在設定されている
    ホームディレクトリには、その Message-Idを持った
    メールが見つからない。

となりかなり面倒くさそうですが (3)以降で見つかれば
ショートカットのリンク先が変わっているので変更しますか?
という処理に利用出来そうですね。


これを全て VBSのコード内に記入して実行するには大変ですので
VBSには秀丸メールの起動オプションで特定のマクロを
実行する方式にした方がメンテナンスが楽そうです。

[ ]
RE:00691 ShortcutMaker.mac 0.90の試用感No.00692
ぱと さん 06/05/13 15:49
 
tibirin さん

秀丸メールユーザーのぱとと申します。

>/vfオプション自体、起動時のコマンドラインの一部ですので
>外部ツールから秀丸メールを動作させたい方にとっては有用ですが
>内部で全て処理してしまう人にとっては不必要ですからね。

有用な点としては、動作が超高速な点もあるだろうと思います。
弱点は、ファイルの構成が変わってしまうと、その時点で無力になる点。

>手順的には

おおお、えっと、そこまで厳密にやるつもりは無いです。/vf オプションで、ジャ
ンプできなかったら、まずは、そのフォルダ内で、Message-id 検索。これで最初に
ヒットしたもので終了。見つからなければ、Grep 検索、ここで複数ヒットしたなら、
後は利用者のニーズで好きにしてもらうって感じですね。

完全にパーマネントかつ、ユニークな ID に基づくものではないので、私がやろう
としているのはせいぜい上記程度のことです。

一応、ここまでの形で、現在動くようになったのですが、(VBS スクリプトの書き出
しもできました。) /z /vF で、開いたメールエディタが裏に回ってもらう件の確認
を、バグ会議室で報告してあるので、その回答待ちであることと、Message-id 検索
した場合での /vf /vF に応じた動作をさせるようになど、微調整をしています。

で、実は一番困っていることが、Message-id が無いメールについての扱いです。
Message-id が無いメールのショートカットを作成し、しかもそのメールのオフセッ
トが変わってしまうと、違うメールにジャンプしてしまってエラーにもならないと
いうことですね。

まあ、どうしても厳密なものにはなりえないので、こんなもんでいいかと思ってま
すけれど。

----
ぱと

[ ]
RE:00692 ShortcutMaker.mac 0.90の試用感No.00693
tibirin さん 06/05/13 21:43
 
tibrinです。

>完全にパーマネントかつ、ユニークな ID に基づくものではないので、私がやろう
>としているのはせいぜい上記程度のことです。
> (中略)
>まあ、どうしても厳密なものにはなりえないので、こんなもんでいいかと思ってま
>すけれど。

オプションで
  Message-Idによる検索
  Grep検索
  /vfオプションによる検索(Message-Id無し)
が行われた時にはメッセージを表示するなんていうのがあれば
違うメールにジャンプしてしまった際にその原因を推測しやすく
新たにショートカットを作らないといけないなぁと
いう発想に繋がりやすいと思います。

[ ]
RE:00693 ShortcutMaker.mac 0.90の試用感No.00694
ぱと さん 06/05/13 22:21
 
tibirin さん

秀丸メールユーザーのぱとと申します。

>オプションで
>  Message-Idによる検索
>  Grep検索
>  /vfオプションによる検索(Message-Id無し)
>が行われた時にはメッセージを表示するなんていうのがあれば

なるほど。なんらかのメッセージをオプション設定で出せるようにするということ
ですね。Grep 検索だけは、するか/しないか の問い合わせをするようになってるし、
UI 的にも利用する方が、意識的になるからともかくとして、
/vfオプションによる検索(Message-Id無し) と、 Message-Idによる検索を行う時は、
メッセージを出すことを検討してみます。アイデアありがとうございます。

----
ぱと

[ ]
RE:00694 ShortcutMaker.mac 0.90の試用感No.00698
tibirin さん 06/05/15 23:00
 
tibirinです。

ShortcutMaker.mac 0.90で /vfオプションを中心にテストした所
2点問題かなぁと思う点が出てきましたので報告しておきます。

(1) 設定によるのですが /vfオプションを起動後、履歴戻りを実行しても
    2回実行しないと元のメールに戻らない。

[全体的な設定・未読メールの閲覧・詳細・フォルダ切り替え時に選択する
メールの指定]の[メールを非選択状態にする(点線で選択するのみ)(D)にする。]が
OFFの時に発生します。

openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
#CurrentDontSelSF = getregnum("DontSelSF");
if (#CurrentDontSelSF == 0) {
    writeregnum "DontSelSF", 1;
    closereg;
    #n = dllfunc("EnvChanged");
} else {
    closereg;
}

// /vf実行

openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
if (#CurrentDontSelSF == 0) {
    writeregnum "DontSelSF", 0;
    closereg;
    #n = dllfunc("EnvChanged");
} else {
    closereg;
}
とすれば OKでしょう。

(2) 仕様となってしまうのですが /vfオプションを起動後
    対象メールが例えば既読で範囲設定が未読分だと
    範囲が勝手に全体に変わってしまう。

/vF実行時の動作は property@.itemと同じ現象ですので参考にして下さい。
/vf実行時はどうしようも無いので変わりましたと Message表示して
あげた方が親切ですね。

とこれを VBSに置き換えるのは大変ですし、これからも細かい修正を
施す際にはマクロ単体での方がグッとメンテナンスし易いと思います。

秀まるおさんのアイディアを参考に batで動作する事が出来ないかを
試してみたのですが、なんとか動作する様です。
以下に私のテストサンプルを記入しておきますので、試してみたければどうぞ。

仕様:
△  秀丸メールのインストールフォルダが変わると使用出来なくなる。
    対策: バッチファイル内を書き換えれば OKですが。
×  バッチファイルを実行するとコマンドプロンプトが前面に出てくる。
    対策: バッチファイルのショートカットを作成し、プロパティの実行時の
          大きさを最小化すると目立たなくなるがバッチファイルを手軽に
          削除出来なくなるのでこの方法は適切ではない。
          他の方法は今の私には判りません。
×  常駐を含め秀丸メールが起動していない時に
    バッチファイルを実行するとコマンドプロンプトが消えない。
    これも消し方が判りません。
○  マクロファイル名には半角スペースが含まれていてもバッチファイルは
    実行出来る。
●  バッチファイル名にはファイル名に記入出来ない文字は使用出来ない("等)

環境:
C:\Installに ShortCutBatというフォルダを作成する。(作業用)

マクロフォルダに ShortCutBat.macというマクロを以下の様に記入する。
// ここから
loaddll "tkinfo.dll";

$folder = getinistr("C:\\Install\\ShortCutBat\\$$$temp$$$.ini", "a",
         "folder");
$account = getinistr("C:\\Install\\ShortCutBat\\$$$temp$$$.ini", "a",
         "account");
$mail = getinistr("C:\\Install\\ShortCutBat\\$$$temp$$$.ini", "a",
         "mail");
message $folder;
message $account;
message $mail;
// ここまで
↑の下に色々とマクロを追加していく。

C:\Install\ShortCutBatに test.batとして以下の様に記入する。
// ここから
echo [a]>"C:\Install\ShortCutBat\$$$temp$$$.ini"
echo folder="folder test">>"C:\Install\ShortCutBat\$$$temp$$$.ini"
echo account="Accountです">>C:\Install\ShortCutBat\$$$temp$$$.ini
echo mail="mailを起動する">>C:\Install\ShortCutBat\$$$temp$$$.ini
"C:\Install\TuruKame\TuruKame.exe" /xShortCutBat.mac
// ここまで

以上の環境で batを実行すると秀丸メールで 3回メッセージ表示される。

秀丸メールのエディタを開いて以下のマクロを実行すると
そのメールに batが貼り付けられる。
// ここから
if(!dllfunc("IsHidemaruMail")) endmacro;
if(dllfunc("IsHidemaruMailMain") == 0 &&
    dllfunc("IsHidemaruMailGrep") == 0) {
    #MailType = dllfunc("MailType");
    if (#MailType == 3 || (#MailType == 4 &&
        rightstr(dllfuncstr("CurrentHeader", "To"), 6) != "@.item")) {
        #n = dllfunc("EnableEdit");
    }
    #n = dllfunc("AddAttach", "C:\\Install\\ShortCutBat\\test.bat");
}
// ここまで

これを応用すれば一つのマクロで複数コピー単体貼り付けまでは出来るでしょう。

[ ]
RE:00698 ShortcutMaker.mac0.90の試用感No.00699
h-tom さん 06/05/16 01:28
 

h-tom です。

>秀まるおさんのアイディアを参考に batで動作する事が出来ないかを
>試してみたのですが、なんとか動作する様です。
WSHでini形式のファイルに書き出せばいいんじゃない?
そーすれば、コマンドプロンプトなんて気にしなくていいし。

>×  常駐を含め秀丸メールが起動していない時に
>    バッチファイルを実行するとコマンドプロンプトが消えない。
>    これも消し方が判りません。
startコマンドを先頭につけましょう。
start "C:\Install\TuruKame\TuruKame.exe" /xShortCutBat.mac

[ ]
RE:00699 ShortcutMaker.mac0.90の試用感No.00700
tibirin さん 06/05/16 02:53
 
tibirinです。

>startコマンドを先頭につけましょう。

h-tomさんアドバイスありがとうございました。
start C:\Install\TuruKame\TuruKame.exe /xShortCutBat.mac
でうまく動作させる事ができました。
startコマンドの動作原理などは後ほど見てみます。


>WSHでini形式のファイルに書き出せばいいんじゃない?
>そーすれば、コマンドプロンプトなんて気にしなくていいし。

添付ファイルをダブルクリックしてリンク先が開け
標準で WSHが動かない環境でも動作させられるかなぁと考えてみたのですが
コマンドプロンプトが表に出てしまうのは余り見た目が綺麗じゃないですし
実際の動作も何回もファイルを開いたり閉じたりする方向になりそうでした。

以前の投稿の際には良く判らなかったのですが
ini形式のファイルで特定の拡張子のファイルの関連付けを変えれば
秀丸メール専用となりますが添付ファイルをダブルクリックし
動作させたい対象を選択出来る様にすれば
特定のメール等にたどり着く事が出来るものを
秀丸メールのマクロのみで作る事が出来ますね。

WSHを使用すればアイコンの変更なんていうのも簡単に出来そうですし。

まったく想像もしていなかったアプローチもあると言うことに
気が付かせて頂きました。

ありがとうございました。

[ ]
RE:00698 ShortcutMaker.mac 0.90の試用感No.00701
ぱと さん 06/05/16 10:20
 
tibirin さん

秀丸メールユーザーのぱとと申します。

いろいろアイデア、ご意見ありがとうございます。

>(1) 設定によるのですが /vfオプションを起動後、履歴戻りを実行しても
>    2回実行しないと元のメールに戻らない。

なるほどねえ。こういう部分までは気にしていませんでした。
参考にさせていただきます。

>(2) 仕様となってしまうのですが /vfオプションを起動後
>    対象メールが例えば既読で範囲設定が未読分だと
>    範囲が勝手に全体に変わってしまう。

この関連のことは手元の message-id 検索に切り替わるところでは一部考慮したり
しました。Find検索の場合、そのフォルダにあっても、範囲設定で表示されていな
いと、ヒットしないことになるので、一度全部表示にして、それでも見つからない
(Grep検索に切替)の時には、元の状態に戻す処理を入れました。

最初に実行する /vf ,/vF でヒットした時は、どうするべきか考えます。

※んまあ、私としては、上記2点とも、あまり気にしてない部分ではありますが…

一応手元の版では、/vF,/vf に失敗した場合の message-id 検索処理を入れたなど
のバージョンになってますので、/z オプション付加での現象(不具合会議室で秀ま
るおさんに相談している件)が判ったら、現在の状態で一度公開します。

んで、ご指摘いただいた件などは、その次の版の参考にさせていただきます。

>とこれを VBSに置き換えるのは大変ですし、これからも細かい修正を
>施す際にはマクロ単体での方がグッとメンテナンスし易いと思います。

なんですよねえ。ただ、WSH スクリプトと連携して処理することでの操作の自由さ
もあると思います。このあたりは h-tom さんからいただいた貴重なテクニックをさ
らに発展させてみたいところです。まあ私の場合、秀丸マクロも WSHスクリプトも
たいしたものが書けないという問題点はありますが。

なお、今回の私のマクロをきっかけに、/vf,/vF オプションと、必要なメールにい
つでも簡単に移動できるということに皆さんの興味が向いて、様々なマクロが登場
してくれるとうれしいです。

細かい部分にこだわらないと言いましたが、逆にこだわっているところは、「利用
が簡単で誰でもとっつきやすい。あんまり考えないでもすぐに使いこなせる」とい
う部分です。例えば WSH のスクリプトをマクロファイルと同梱にして、「この二つ
をマクロフォルダに入れて下さい」とすれば簡単になるところを、あえて、一本の
マクロから WSH を生成しているところとか、また手元の版では、オプション設定の
変更も、SHIFT を押しながら実行することで、マクロ上から変更できるようにしま
した。こういうのも ini を用意してそれをユーザーに書き換えさせるとか、マクロ
コード自体の中にオプション設定を入れて書き換えさせるとかすれば容易なのです
が、そういうことで、敬遠されてしまうことが残念なので、あえて、マクロ一本で、
あとは適当に実行すればいきなり使えるようにしたいという部分が私の最大のこだ
わりです。

----
ぱと

[ ]
RE:00700 ShortcutMaker.mac0.90の試用感No.00702
ぱと さん 06/05/16 11:53
 
tibirin さん

秀丸メールユーザーのぱとと申します。

>以前の投稿の際には良く判らなかったのですが
>ini形式のファイルで特定の拡張子のファイルの関連付けを変えれば
>秀丸メール専用となりますが添付ファイルをダブルクリックし
>動作させたい対象を選択出来る様にすれば
>特定のメール等にたどり着く事が出来るものを
>秀丸メールのマクロのみで作る事が出来ますね。

私もこの流れあんまり判ってないのですが、メールジャンプ上の利用のことでいう
と次のような感じですか?

ini ファイルに、ジャンプ用の情報を記入しておく

account="XX"
folder="XX"
message-id="XX"

で、この ini ファイルの拡張子をini でなく、何か別のものにしておく。
その拡張子の関連付けにより、秀丸エディタをマクロ起動オプションで実行し、そ
のマクロの中で、この ini(相当のファイル)を読んでジャンプする

あれれ?違うかな? 上記の流れでうまくいくなら、秀丸メールが起動していない状
態でも、動作するということになりますね。

※その ini 相当のファイルが実行されたパスを、マクロの中で、秀丸メールに渡す
(その ini 相当のファイルの情報を読み取る)ことができるのでしょうか?

----
ぱと


[ ]
RE:00702 ShortcutMaker.mac0.90の試用感No.00705
tibirin さん 06/05/18 23:31
 
tibirinです。

>>ini形式のファイルで特定の拡張子のファイルの関連付けを変えれば
>>秀丸メール専用となりますが添付ファイルをダブルクリックし
>>動作させたい対象を選択出来る様にすれば
>>特定のメール等にたどり着く事が出来るものを
>>秀丸メールのマクロのみで作る事が出来ますね。

>私もこの流れあんまり判ってないのですが、メールジャンプ上の利用のことでいう
>と次のような感じですか?
> (中略)
>※その ini 相当のファイルが実行されたパスを、マクロの中で、秀丸メールに渡す
>(その ini 相当のファイルの情報を読み取る)ことができるのでしょうか?

試してみました。

秀丸メール外部から ini相当のファイルが実行されたパスを
マクロに取り込む方法は私には判りませんでしたので
デスクトップ等に置いておき
秀丸メールにジャンプしたいという場合は以下の情報は不要でしょう。
逆に秀丸メール内部にのみおいておきジャンプに使用するならば
利用出来る方法の一つになると思います。

テスト環境:

C:\Install\Hidemaru\Macro\に MakeShortCutというフォルダを作成する。(作業用)

C:\Install\Hidemaru\Macro\MakeShortCutに Link.batを以下の様に作成する。
// ここから
start C:\Install\TuruKame\TuruKame.exe /xMakeShortCut.mac
// ここまで

C:\Install\Hidemaru\Macro\に MakeShortCut.macを以下の様に作成する。
// ここから
loaddll "tkinfo.dll";
$HomeDir = dllfuncstr("HomeDir");
$CurrentAccount = dllfuncstr("CurrentAccount");
$XAttach = dllfuncstr("CurrentHeader", "X-Attach");
$XAttachPath = $HomeDir + $CurrentAccount + "\\" + $XAttach;
$key = "Test";
$iniAccount = getinistr($XAttachPath, $key, "Account");
$iniFolder = getinistr($XAttachPath, $key, "Folder");
#i = getininum($XAttachPath, $key, "number");
message $iniAccount + "\n" + $iniFolder + "\n" + str(#i);
endmacro;
// ここまで

Link.hmsというファイルを以下の様に作成して
秀丸メールの適当なメールに貼り付け。
// ここから
[Test]
Account=テストアカウント
Folder=テストフォルダ
number=2
// ここまで

コントロールパネル・フォルダオプション・ファイルの種類で新規(N)を実行。
ファイルの拡張子に hmsを入力し OK。
詳細設定(V)・新規(N)を実行
アクション(A)に openを入力
アクションを実行するアプリケーション(L)に
c:\install\hidemaru\macro\makeshortcut\link.batを入力する。
OK・OK・閉じる

上記が正しく設定出来ていれば Link.hmsをダブルクリックすると
3行のメッセージが表示される。

コメント:

アクションを実行するアプリケーション(L)に
c:\install\hidemaru\hidemaru.exe /xTest.macと
入力すれば秀丸エディタに Test.macがあれば思った様な動作が
実行出来ますが
c:\install\turukame\turukame.exe /xTest.macと
入力しても思った様に動作してくれませんでした。
秀丸メールは本体とエディタが合体しているのでこの様な動作に対応するのが
色々と難しそうですので、batを実行する形にしてみました。
現使用でも batの変わりに exeファイルを作成出来るプログラミングツールがあれば
run c:\install\turukame\turukame.exe /xTest.mac
なんていうプログラムを作成し、それを実行する形にすれば
コマンドプロンプトが目障りだという事は無くなると思います。

秀丸メールの添付ファイルは全て X-Attachヘッダに記入されておりますので
ジャンプ用に作成する Link.hmsをマクロ内で必ず一番前に移動する様にすれば
リンク先があるのかどうか判別し易そうです。

[ ]
RE:00705 ShortcutMaker.mac0.90の試用感No.00711
tibirin さん 06/05/20 22:57
 
tibirinです。

ini形式の特定の拡張子をダブルクリックするだけで
Windows上のどの場所に置かれていても秀丸メールで
その iniファイルを利用する事が出来ないかと考えました。
要秀丸エディタでその秀丸exeファイルが固定という環境に
なりますが以下にサンプルを記入しておきます。

テスト環境:

C:\Install\Hidemaru\Macroに WorkShortCutというフォルダを
作成する。(作業用)

C:\Install\Hidemaru\Macro\WorkShortCutに Openというフォルダを
作成する。(作業用)

C:\Install\Hidemaru\Macro\に SaveShortCutEditor.macを
以下の様に作成する。
// ここから
saveas macrodir + "\\WorkShortCut\\Open\\Link.hms";
run "C:\\Install\\TuruKame\\TuruKame.exe /xOpenShortCutMail.mac";
quit;
endmacro;
// ここまで

C:\Install\Hidemaru\Macro\に OpenShortCutMail.macを
以下の様に作成する。
// ここから
$key = "LinkInfo";
$LinkPath = macrodir + "\\WorkShortCut\\Open\\Link.hms";
#hmsNumber = getininum($LinkPath, $key, "Number");
message str(#hmsNumber);
endmacro;
// ここまで

コントロールパネル・フォルダオプション・ファイルの種類で新規(N)を実行。
ファイルの拡張子に hmsを入力し OK。
詳細設定(V)・新規(N)を実行
アクション(A)に openを入力
アクションを実行するアプリケーション(L)に
C:\Install\Hidemaru\Hidemaru.exe /xSaveShortCutEditor.mac /h を
入力する。
OK・OK・閉じる

Link.hmsというファイルを以下の様に作成して Windows上の適当な位置に置く。
// ここから
[LinkInfo]
Number=1
// ここまで

上記が正しく設定出来ていれば Link.hmsをダブルクリックすると
秀丸メールが起動しメッセージが表示されます。

[ ]
RE:00711 ShortcutMaker.mac0.90の試用感No.00712
ぱと さん 06/05/21 15:36
 
tibirin さん

秀丸メールユーザーのぱとと申します。

やってみました。んで、ちゃんと1と表示されました。

なるほど、秀丸エディタで、固定パスの link.hms ファイルに ini ファイル相当の
情報をコピーしてから、(引数を取ることはできなくても)指定された 固定パスの
ini ファイルを読むことなら、マクロからできるので、そのファイルから情報を読
むことで、元の情報ファイルから秀丸メールのマクロに、情報を渡すことができる
ようになったわけですね。これはすごいです。同じ仕組みで、/vf や message-id
でのジャンプはできそうですね。

----
ぱと

[ ]
RE:00712 ShortcutMaker.mac0.90の試用感No.00713
ぱと さん 06/05/21 16:09
 
自己レスです

tibirin さん

>同じ仕組みで、/vf や message-id でのジャンプはできそうですね。

やってみました。できました、できました。

ini(hms)に、ジャンプに必要な情報を書いておき、OpenShortCutMail.macでそれら
を ini から読み取って使うことで、無事ジャンプできました。

WSH 利用以外に、秀丸メールに、何らかのパラメーター的な情報を渡すことができ
るテクニックになっていると思います。

ini に別の拡張子を与えることで、ファイルの関連付けを利用するという部分が面
白いですね。

----
ぱと

[ ]
RE:00711 ShortcutMaker.mac0.90の試用感No.00714
h-tom さん 06/05/21 22:23
 

h-tom です。

>ini形式の特定の拡張子をダブルクリックするだけで
>Windows上のどの場所に置かれていても秀丸メールで
>その iniファイルを利用する事が出来ないかと考えました。
関連づけ起動でやるなら、
1)ダブルクリックされたファイルを、
  macrodir + "\\WorkShortCut\\Open\\Link.hms"
  にコピーする。
2)C:\Install\TuruKame\TuruKame.exe /xOpenShortCutMail.mac を実行する。
という、方法でいいのでは?
これなら、秀丸エディタがなくても、バッチファイル、WSH等、なんででもで
きると思いますよ?

[ ]
RE:00713 ShortcutMaker.mac0.90の試用感No.00715
tibirin さん 06/05/22 17:39
 
tibirinです。
こちらに纏めて投稿しておきます。

>WSH 利用以外に、秀丸メールに、何らかのパラメーター的な情報を渡すことができ
>るテクニックになっていると思います。
>
>ini に別の拡張子を与えることで、ファイルの関連付けを利用するという部分が面
>白いですね。

個人的には X-Attachを利用した方法で問題ない為
マクロを少しずつ作って試していた所
複数のエディタを起動させた状態でアイコンをダブルクリックすると
本体側でその時選択されているメールの X-Attachを所得するという
致命的な欠陥を見つけてしまいました。
なので X-Attachを使用する方法以前に気が付いていた秀丸エディタを
利用する方法に切り替えました。
秀丸エディタをタブモード使用で何かファイルを開いている時に
アイコンをダブルクリックすると最終的なフォーカスが秀丸エディタと
なってしまうので、起動オプションの /hを使用するというのがポイントでした。

別投稿で h-tomさんがご指摘の様にここで秀丸エディタにして貰っている
作業というのは単純なもので他ツールでも代用可能ですので
他のマクロを使用出来るエディタで同様の事が出来るのであれば
秀丸メール内でマクロを使ってテキストファイルを処理する際の
外部エディタとしても利用可能でしょう。

個人的には同じフォルダ内に同一の Message-Idを持つメールは有りませんので
Openマクロでは複数のリンク情報を持つ Link.hmsを読み取り
選択メニュー表示後、対象メールを
if (Message-Id有)
 フォルダ移動 + 範囲変更
 if (Offset有) {
  inmail=0で Message-Id検索
  if (対象メールなし) {
   inmail=3で Message-Id検索して一覧作成
  }
 }
} else {
 他条件の inmail=3で検索して一覧作成
}
何らかの操作で対象を開くか、選択するのみかを選べる様にする。
範囲、履歴戻り対策

Link.hmsは右クリック・送る等でエディタで編集する事が出来ますので
リンク作成マクロでは
if (本体側) {
 if (メール一覧枠) {
  選択メールの各種情報を macrodir + "\\WorkShortCut\\Save"の
  Link.hmsに追加 (複数選択可)
 } else if (フォルダ枠) {
  選択フォルダのアカウント・フォルダ情報を
  macrodir + "\\WorkShortCut\\Save"の Link.hmsに追加
 }
} else if (検索結果ウィンドウ) {
  選択メールの各種情報を macrodir + "\\WorkShortCut\\Save"の
  Link.hmsに追加 (複数選択可)
} else if (エディタ側) {
 if (Link.hms有り) {
  Link.hmsに追加
 else {
  Link.hmsを貼り付け
 }
}

なんていう辺りまで作成すれば十分実用可能です。

究極的には Openマクロ、リンク作成マクロ共に田楽 DLLのリストビューを
使用して、複数選択、オープン、コピー、切り取り、貼り付け、削除
重複項目削除なんていうのが出来れば素晴らしいですが
そこまで作り込まなくてもいいとは思います。


[ ]