|
メール一覧上での「添付ファイルの保存(すべて)」コマンドをシミュレートす
ることはちょっと出来ないです。ただ、その処理自体は、添付ファイルをすべて
選択してからIDM_ATTACHPANE_SAVEASを実行するのとまったく同じ処理になって
るので、以下のようなマクロでいいんじゃないかと思います。
loaddll "tkinfo.dll";
#pane = dllfunc("CurrentPane");
if( #pane != 3 ) {
#n = dllfunc("SelectPane", 3);
}
#n = dllfunc("SelectAllInCurrentPane");
#n = sendmessage( hidemaruhandle(0), 0x0111, 40323, 0 );
if( #pane != 3 ) {
#n = dllfunc("SelectPane", #pane);
}
秀丸メールの内部の処理としては、実は上記のようにSelectPaneして
SelectAllしてる訳じゃなくて、添付ファイルのListViewコントロールに
LVM_SETITEMSTATEメッセージを送って選択してるんですけども、
LVM_SETITEMSTATEメッセージのパラメータがはVITEM構造体になってしまってる
ので、それをマクロからシミュレートさせることは現状不可になります。なので、
上記マクロのようにSelectPaneさせてやる作戦がノーマルかと思います。
それか、添付ファイル一覧のリストビューにHomeキー、Shift+Endキーをsend
して選択させる作戦もあります。
loaddll "tkinfo.dll";
#frame = findwindowclass("TuruKameFrame");
#attachdlg = dllfunc("Bypass_FindWindowEx", #frame, 0, 0, "添付ファイル");
#list = dllfunc("Bypass_FindWindowEx", #attachdlg, 0, "SysListView32", 0);
if( #list != 0 ) {
#n = dllfunc("SimulateKeyStroke2", #list, 0x24,0,0,0 );
#n = dllfunc("SimulateKeyStroke2", #list, 0x23,1,0,0 );
}
#n = sendmessage( hidemaruhandle(0), 0x0111, 40323, 0 );
分かる人にしか分からないマクロになってしまいますが、上記マクロでも一応
大丈夫なはずだと思います。
|
|