添付ファイル枠でのファイル名文字列取得No.03399
misono さん 12/09/28 09:55
 
いつもありがとうございます。

添付ファイル付きメールが選択されており、添付ファイル枠にフォーカスがあり、現
在フォーカスされている添付ファイルの添付名をマクロで取得したいと考えています。

ちょうど、カレンダー表示で有効な

CalendarDate, CalendarDays関数

のようなものです。

現状で何かやり方があればと思いsendmessageでとれないかとも思ったのですがどう
やら難しいようです。

追加していただきたいのですがいかがでしょうか。

[ ]
RE:03399 添付ファイル枠でのファイル名文No.03400
秀まるお さん 12/09/28 10:50
 
とりあえず、sendmessageする作戦のマクロ例をお返事します。
tkinfo.dllに関数追加するとなると、単純に「ここからここまで選択」みたいにいか
ない(飛び飛び選択とかも出来る)ので、パラメータの受け渡しがちょっと難しいで
す。なので、とりあえずsendmessage作戦でやって欲しい所です。

 マクロの説明ですが…フォーカスのあるアイテムを取得するだけなら、LVM_GETNEX
TITEMでLVNI_FOCUSEDを指定するだけで簡単に出来ます。選択されてるアイテム一覧
を取得するには、LVNI_SELECTEDを何回も呼び出してやる必要があります。詳しくは、
"LVM_GETINEXTITEM"でgoogle検索すると出てくると思います。

------------------サンプルマクロ------------------------
    #LVM_GETNEXTITEM  = 0x1000 + 12;
    #LVNI_SELECTED = 0x0002;
    #LVNI_FOCUSED = 0x0001;


    loaddll "tkinfo.dll";
    #frame = hidemaruhandle(0);
    #attach = dllfunc("Bypass_FindWindowEx", #frame, 0, 0, "添付ファイル");
    if( #attach == 0 ) {
        message "エラー1";
    }
    #listview = dllfunc("Bypass_FindWindowEx", #attach, 0, "SysListView32",
0 );
    if( #listview == 0 ) {
        message "エラー2";
    }

    #html = 0;
    if( dllfuncstr("CurrentHeader", "X-Html:") != "" ) {
        #html = 1;
    }

    #focusindex = sendmessage( #listview, #LVM_GETNEXTITEM, -1, #LVNI_FOCUSE
D );
    if( #html ) {
        #focusindex = #focusindex - 1;
    }

    #cSelect = 0;
    #index = -1;
    while(1) {
        #index = sendmessage( #listview, #LVM_GETNEXTITEM, #index, #LVNI_SEL
ECTED );
        if( #index < 0 ) {
            break;
        }
        if( #html ) {
            if( #index > 0 ) {
                #aSelect[#cSelect] = #index - 1;
                #cSelect = #cSelect + 1;
            }
        } else {
            #aSelect[#cSelect] = #index;
            #cSelect = #cSelect + 1;
        }
    }
    $s = "選択数 = " + str(#cSelect) + "\n";
    #i = 0;
    while( #i < #cSelect ) {
        $s = $s + "選択index" + str(#i + 1) + " = " + str(#aSelect[#i])
             + "    " + dllfuncstr("CurrentHeader2", "X-Attach", #aSelect[#
i] ) + "\n";
        #i = #i + 1;
    }
    $s = $s + "\n\nフォーカスインデックス = " + str(#focusindex);
    message $s;
    endmacro;

[ ]
RE:03400 添付ファイル枠でのファイル名文No.03405
misono さん 12/09/29 17:24
 
 MISONOです。

>とりあえず、sendmessageする作戦のマクロ例をお返事します。

早速の対応と丁寧なサンプルマクロをありがとうございました。
いろいろと動作テストしてますが、かなり満足しています。

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

[ ]