キー操作で添付ファイル枠にフォーカスしNo.05049
さん 19/04/16 14:53
 
 お世話になります。

 メールの作成画面で添付ファイルを追加すると、添付ファイル枠が表示されると思
いますが、この部分にキー操作でフォーカスする方法はありますでしょうか。
 キー割り当てでF6キーに「枠のフォーカス切り替え」を割り当てていますが、添付
ファイル枠は対象ではないようで、うまくフォーカスできません。
 また、Shift+Tab等でFromやToといったヘッダと本文部分にはフォーカスできます
が、やはり添付ファイル枠にはフォーカスできないようです。
 なにかよい方法があれば教えていただけないでしょうか。
 もしくは枠のフォーカス切り替えに添付ファイル枠も含めるようにしていただくこ
とは可能でしょうか。

 以上、よろしくお願いいたします。

[ ]
RE:05049 キー操作で添付ファイル枠にフォNo.05050
RET さん 19/04/16 15:43
 
こんにちは.

> メールの作成画面で添付ファイルを追加すると、添付ファイル枠が表示されると
>思いますが、この部分にキー操作でフォーカスする方法はありますでしょうか。

私の手元の環境では Ctrl+Tabで添付ファイル枠にフォーカスが移るようですが,い
かがでしょうか.

[ ]
RE:05050 キー操作で添付ファイル枠にフォNo.05052
さん 19/04/16 16:31
 
 お世話になります。

>私の手元の環境では Ctrl+Tabで添付ファイル枠にフォーカスが移るようですが,い
>かがでしょうか.

 私は秀丸エディタをタブモードで利用しており、キー割り当てでCtrl+Tabを「次の
タブ」に割り当てているため、どうもうまく動かないようです。

 それでは。

[ ]
RE:05052 キー操作で添付ファイル枠にフォNo.05053
秀まるお2 さん 19/04/16 17:02
 
 テストしてみたら、たしかに秀丸エディタのキー割り当てが有効になってしまって
るようなので、少なくとも「次のタブ」については秀丸メールのエディタ上で効かな
いようにする(標準のCtrl+Tabが優先されるようにする)って修正をしてみようと思
います。

 ただ、そもそも的に、秀丸エディタの方で、Ctrl+Tabに「次のタブ」を割り当てな
くても、標準でCtrl+Tabで「次のタブ」として動作します。キー割り当て的にはCtrl
+Tabには「ファイル系」の「なし」を割り当てればいいです。それで大丈夫じゃない
かと思います。

[ ]
RE:05053 キー操作で添付ファイル枠にフォNo.05054
さん 19/04/16 17:13
 
 お世話になります。

 すみません、ちゃんと調べてみたら、Ctrl+Tabには「次のタブ」コマンドではなく
て、マクロを割り当てていました。
 音声化ソフトだとタブを切り替えたときに、どのファイルなのかわからないので、
マクロで読み上げるようにしてありました。
 こういう状況なのですが、何か対処法はありますでしょうか。

 以上、よろしくお願いします。

[ ]
RE:05054 キー操作で添付ファイル枠にフォNo.05055
秀まるお2 さん 19/04/17 09:20
 
 マクロを割り当ててるってことであれば、とりあえずそのマクロの中で、添付ファ
イル枠に切り替える処理をしたらいいかと思います。調べてみたら、「nexthidemar
u」にて添付ファイル枠にフォーカス移動が可能でした。

 ちなみに添付ファイル枠にフォーカス移動してる状態だと、Ctrl+Tabキーを押して
も何も効かないというか、マクロが動いてくれないようです。なので、結果としてCt
rl+Tabで添付ファイル枠へのフォーカス移動は出来ますが、添付ファイル枠から元の
本文側へのフォーカス移動はCtrl+Tabでは出来ないです。現状、キー割り当ての動作
の仕組み的にそうなってしまってるようです。この辺、なんでなのか一回見直してみ
ます。

 マクロのサンプルは以下のようになりました。


    if( (platform & 0x00800000) != 0 ) {
        //秀丸メール上
        loaddll "tkinfo.dll";
        if( dllfunc("IsHidemaruMailMain") != 0 ) {
            //秀丸メール本体上では「次のタブ」として動作。
            #n = sendmessage( hidemaruhandle(0), 0x111, 40317, 0 );
        } else if( dllfunc("IsHidemaruMailGrep") != 0 ) {
            //検索結果のウィンドウ上では何もしない?
        } else {
            //エディタウィンドウ上では「次の秀丸」とする。
            nexthidemaru;
        }
    } else {
        //秀丸エディタ上
        message "秀丸エディタ上です。";
    }

[ ]
RE:05055 キー操作で添付ファイル枠にフォNo.05056
秀まるお2 さん 19/04/17 09:26
 
 追加コメントすみません。

 添付ファイル枠から本文枠にフォーカスを戻すのは、とりあえずCtrl+Shift+Tabで
出来ます。

[ ]
RE:05056 キー操作で添付ファイル枠にフォNo.05057
秀まるお2 さん 19/04/17 14:43
 
 添付ファイル枠にフォーカスがある場合にCtrl+Tabキーを押した場合にマクロが起
動しない理由を調べてみました。

 結論的には仕様というか、あえてそうしてるようでした。添付ファイル枠にフォー
カスがある場合、

 Enter         添付ファイルを開く
 Alt+Enter     添付ファイルのプロパティ
 Delete        添付ファイル削除
 Tab/Shift+Tab フォーカス切り替え

 の固定動作になってました。他のキーについてはキー割り当てが効きますけども。

[ ]
RE:05057 キー操作で添付ファイル枠にフォNo.05058
さん 19/04/17 20:37
 
 お世話になります。

 まとめてのレスですみません。

 まず、マクロで「nexthidemaru」を利用すると、確かに添付ファイル枠には移動で
きるようでした。
 ただ、これだとメール作成画面を複数開いていると、少し都合が悪いです。
 例えば、メール作成画面を2つ開いた状態で、1つ目の作成画面だけ添付ファイル枠
があるような状況で、添付ファイル枠が存在しないほうのウィンドウをアクティブに
して、「nexthidemaru」を実行すると、もう1つの作成画面に切り替わってしまいます。
 それから、添付ファイル枠でTabキーやShift+Tabを押すと、本文にフォーカスでき
るのも確認できました。
 ということで、個人的には何らかのキー割り当てで添付ファイル枠にフォーカスさ
えできればいいんですが、何か方法はありますでしょうか。

 以上、よろしくお願いいたします。

[ ]
RE:05058 キー操作で添付ファイル枠にフォNo.05059
秀まるお2 さん 19/04/18 09:05
 
 添付ファイル枠がある場合はnexthidemaruを実行して、枠が無い場合は何もしない
ってマクロのサンプルってことで、以下のマクロを作ってみました。

    loaddll "tkinfo.dll";
    if( dllfunc("CountCurrentHeader", "X-Attach") != 0
     || dllfunc("CountCurrentHeader", "X-Html") != 0 ) {
        //添付ファイル枠があるはず
        nexthidemaru;
    }

 こんな処理でどうでしょうか。

 HTMLメールViewerでHTMLメールをインライン表示してる時はうまくいかないですけ
ども。(それに対応することも一応可能ではありますが)


[ ]
RE:05059 キー操作で添付ファイル枠にフォNo.05060
さん 19/04/18 09:20
 
 お世話になります。

 マクロのサンプル、ありがとうございます。
 一応これで大丈夫そうです。

> HTMLメールViewerでHTMLメールをインライン表示してる時はうまくいかないです
>けども。(それに対応することも一応可能ではありますが)

 もしよろしければ、こちらについてもサンプルを作成していただけないでしょうか。

 以上、よろしくお願いいたします。

[ ]
RE:05060 キー操作で添付ファイル枠にフォNo.05063
秀まるお2 さん 19/04/18 10:27
 
 対応可能ってお返事しましたが、ダメなケースがありました。

 HTMLメールの場合で、HTMLメールの中に画像が入ってて、その画像がHTMLメールの
中の画像の場合にうまくいかないです。そういう場合は間違ってnexthidemaruしてか
らprevhidemaruする動作になってしまいます。

    loaddll "tkinfo.dll";
    if( dllfunc("CountCurrentHeader", "X-Attach") != 0
     || (dllfunc("CountCurrentHeader", "X-Html") != 0 && dllfunc("IsHtmlMail
ViewerVisible") == 0) ) {
        //添付ファイル枠があるはず
        #handle = hidemaruhandle(0);
        nexthidemaru;
        if( hidemaruhandle(0) != #handle ) {
            //添付ファイルは無かった
            prevhidemaru;
        }
    }

 画像添付ファイルがHTMLメールの中の物かどうか厳密に調べるようにすることも一
応可能ではあるんですが、面倒なので・・・。

 一応作ってみますか・・・。

[ ]
RE:05063 キー操作で添付ファイル枠にフォNo.05064
秀まるお2 さん 19/04/18 10:39
 
 厳密に処理するバージョンも作ってみました。

    loaddll "tkinfo.dll";
    #cAttach = dllfunc("CountCurrentHeader", "X-Attach");
    #cHtml = dllfunc("CountCurrentHeader", "X-Html");
    #htmlview = dllfunc("IsHtmlMailViewerVisible");
    #wantSwitch = 0;
    if( (#cAttach != 0 || #cHtml != 0) && #htmlview == 0 ) {
        #wantSwitch = 1;
    } else if( #htmlview != 0 && #cAttach != 0 && #cHtml != 0 ) {
        $folder = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\";
        $htmlFolder = $folder + dllfuncstr("CurrentHeader", "X-Html" );
        #x = strrstr( $htmlFolder, "\\" );
        if( #x < 0 ) {
            message "エラー";
            endmacro;
        }
        $htmlFolder = leftstr( $htmlFolder, #x + 1 );
        #i = 0;
        while( #i < #cAttach ) {
            $attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
            #x = strrstr( $attach, "\\" );
            $attach = midstr( $attach, #x + 1 );
            $file = $htmlFolder + $attach;
            message $file;
            if( ! existfile( $file ) ) {
                #wantSwitch = 1;
                break;
            }
            #i = #i + 1;
        }
    }
    if( #wantSwitch ) {
        //添付ファイル枠があるはず
        message "切り替え";
        #handle = hidemaruhandle(0);
        nexthidemaru;
        if( hidemaruhandle(0) != #handle ) {
            //添付ファイルは無かった
            prevhidemaru;
        }
    } else {
        message "切り替え無し";
    }

[ ]
RE:05064 キー操作で添付ファイル枠にフォNo.05074
さん 19/04/18 16:32
 
 お世話になります。

 ありがとうございます。
 うまくいきました。
 これでしばらく利用してみたいと思います。

 以上、今後ともよろしくお願いいたします。

[ ]