クリップ右クリック保存No.43823
hirahira さん 12/12/21 16:29
 
いつもお世話になっております。

秀丸のマクロで、添付ファイルを以下のように保存処理しています。

    //#define IDM   ATTACHPANE  UNDOATTACH       40322
    //#define IDM   ATTACHPANE  SAVEAS           40323
    //#define IDM   ATTACHPANE  RENAME           40324
    //#define IDM   ATTACHPANE  IMPORT           40325
    //#define IDM   ATTACHPANE  FIND    RENAMED FILE 40326
    //#define IDM   ATTACHPANE  EXPLORER         40327

#n = dllfunc("SelectAllInCurrentPane");
#n = dllfunc("SetAutoPushTimer", 1, "OK" );

#n = dllfunc("SetAutoPushTimerEver", hidemaruhandle(0), "" );
#n = sendmessage( hidemaruhandle(0), 0x0111, 40323, 0 );
#n = dllfunc("StopAutoPushTimer");

これとは別に、メール一覧のクリップを右クリックしたときに表示される

添付ファイルの保存(すべて)をマクロで実行することができるでしょうか。

教えてください。

[ ]
RE:43823 クリップ右クリック保存No.43825
秀まるお2 さん 12/12/21 17:28
 
 メール一覧上での「添付ファイルの保存(すべて)」コマンドをシミュレートす
ることはちょっと出来ないです。ただ、その処理自体は、添付ファイルをすべて
選択してから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 );

 分かる人にしか分からないマクロになってしまいますが、上記マクロでも一応
大丈夫なはずだと思います。

[ ]
RE:43825 クリップ右クリック保存No.43828
hirahira さん 12/12/21 17:37
 
わかりました。

ちょっと、これで試してみます。

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

[ ]
RE:43825 クリップ右クリック保存No.43829
秀まるお2 さん 12/12/21 17:42
 
> LVM_SETITEMSTATEメッセージのパラメータがはVITEM構造体になってしまってる

 VITEMじゃなくて、LVITEM構造体の間違いでした。

[ ]