iskeydown( n1 ) 関数についてNo.29885
styth さん 11/06/01 17:33
 
ヘルプには、
>この関数を利用すれば、キー割り当てで、たくさんのキーに同じマクロを割り当
>ててもマクロファイル内で分岐する処理が可能になります。
 とのことですが、マクロをアイコンに登録しておいて、Shiftキーを押しなが
ら、アイコンクリックで、マクロ実行した時に、マクロ内部で処理を分岐させる
という使い方は、できないんでしょうか?
 秀丸メールの方でやってみたんですが、うまくいきませんでした。
 よろしくお願いします。

[ ]
RE:29885 iskeydown( n1 ) 関数についてNo.29886
秀まるお2 さん 11/06/01 18:17
 
 マクロを実行した瞬間にShiftキーを押さえてるかどうか調べて、それによっ
てマクロの実行内容を変えるということですよね。

 こちらで試した限りは以下のマクロでうまくいきました。

    if( iskeydown(0x10) ) {
        message "Shiftキー押してます";
    } else {
        message "Shiftキー押してません。";
    }

 例えばマクロを2つ用意しておいて、Shiftキーを押してるかどうかでどちら
を実行するか切り替えたいとかなら、

    if( iskeydown(0x10) ) {
        execmacro "ShiftMacro.mac";
    } else {
        execmacro "NormalMacro.mac";
    }

 とかすればいいです。

[ ]
RE:29886 iskeydown( n1 ) 関数についてNo.29887
styth さん 11/06/01 20:22
 
すみません。ヘルプの
>注意:マクロ起動直後のキー状態が取得できるのは、マクロ実行開始から1秒以内
>です。
 このことを見逃していました。うまくいきました。

 ところで、アイコンクリックでなく、
 自動起動マクロで、「あとで送信/今すぐ送信時」にiskeydownで処理を分岐さ
せるマクロを登録して、実行しようとしています。
 それで、秀丸メールで、Ctrl+Lを「あとで送信」に割り付けています。
 Shift+Ctrl+Lで、マクロを実行した時に、「あとで送信」を実行したことには
ならないでしょうか?
 というか、「あとで送信」コマンドを複数のキーに登録することはできないん
でしょうか?
 よろしくお願いします。

[ ]
RE:29887 iskeydown( n1 ) 関数についてNo.29889
秀まるお2 さん 11/06/01 21:43
 
 秀丸エディタの場合はテキストエディタということもあって、キー割り当ての
自由度が非常に高い設計にしてますけども、秀丸メールはそこまでやるのが大変
だということで、1つのコマンドに1つのキーしか割り当てできなくしてしまい
ました。

 しいてなんとかするとしたら、マクロを使うしか無いです。

 例えば「あとで送信」をCtrl+Lに割り当ててるとしたら、別途、マクロの何か
に対してShift+Ctrl+Lキーを割り当てるようにして、そのマクロの中で、「あと
で送信」相当の処理をするようにしたらいいかと思います。

 マクロを使って「あとで送信」相当のことをするならば、

    loaddll "tkinfo.dll";
    #n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40054);

 とするのが一番いいです。(sendmessageだと都合が悪いです)

>  自動起動マクロで、「あとで送信/今すぐ送信時」にiskeydownで処理を分岐さ
> せるマクロを登録して、実行しようとしています。

 単純に、「あとで送信=Ctrl+L、今すぐ送信=Shift+Ctrl+L」とキー割り当てす
るだけでいいような気がします。

[ ]
RE:29889 iskeydown( n1 ) 関数についてNo.29890
styth さん 11/06/02 02:48
 
> 秀丸エディタの場合はテキストエディタということもあって、キー割り当ての
>自由度が非常に高い設計にしてますけども、秀丸メールはそこまでやるのが大変
>だということで、1つのコマンドに1つのキーしか割り当てできなくしてしまい
>ました。
 わかりました。アイコン+Shiftキーで操作したいと思います。

>>  自動起動マクロで、「あとで送信/今すぐ送信時」にiskeydownで処理を分岐さ
>> せるマクロを登録して、実行しようとしています。
> 単純に、「あとで送信=Ctrl+L、今すぐ送信=Shift+Ctrl+L」とキー割り当てす
>るだけでいいような気がします。
 やりたいことは、そうではなくて、Shiftキーを使って分岐させようとしてい
る処理は、Shiftキーが押されていたら、メール送信時に
「〜〜〜。〜〜〜?〜〜〜!」を「。?!」部分でばらばらにしたいというもの
です。
(この件については、わからないことがあるので、改めてスレッドを立てるかも
知れません。)
 ということで、ここは、秀丸エディタの掲示板なので、メールの話はそちらで
させて頂きたいと思います。
 また、何かあれば、よろしくお願いします。
 ありがとうございました。

[ ]