常駐アイコンでの受信音のオン・オフの切No.02403
yya さん 17/11/05 19:20
 
常駐秀丸メールアイコンのメニューで,「定期的に受信する」と同様,
「受信音を鳴らす」かどうかのオン・オフの切り替えをできるようにならないでしょ
うか?
Windowsのスピーカーは常にオンにしながら,秀丸メールの定期受信もしたいけれど,
受信音のオン・オフの切り替えを(プレゼン中かなどの状況により)素早く行いたい
ときがあります。
そのようなときに,全般的な設定を開くのはちょっと面倒だと思います。

[ ]
RE:02403 常駐アイコンでの受信音のオン・No.02405
秀まるお2 さん 17/11/06 09:46
 
 とりあえず、受信時の音を鳴らす/鳴らさないの切り替えマクロを作ってみました。

    //音を鳴らす/鳴らさないの切り替え
    loaddll "tkinfo.dll";
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    $sound = getregstr("RecvSound");
    closereg;
    $flag = leftstr($sound, 1);
    if( $flag == "" ) {
        message "受信時に鳴らす音が何も指定されていません。マクロを中断しま
す。";
        endmacro;
    }
    if( $flag == "\x01" ) {
        //OFF
        $menuTitle = "受信時の音 = 鳴らさない";
        $sound = midstr( $sound, 1 );
    } else {
        $menuTitle = "受信時の音 = 鳴らす";
    }
    menu $menuTitle, "\x01", "   → 鳴らす", "   → 鳴らさない";
    if( result == 3 ) {
        //鳴らす
        openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
        writeregstr "RecvSound", $sound;
        closereg;
        #n = dllfunc("EnvChangedDanger");
        message "受信時の音を鳴らすように設定しました。";
    } else {
        openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
        writeregstr "RecvSound", "\x01" + $sound;
        closereg;
        #n = dllfunc("EnvChangedDanger");
        message "受信時の音を鳴らさないように設定しました。";
    }


 こういう内容のマクロを適当に(テキストエディタで)作成してどこか(ドキュメ
ントフォルダ)とかに保存して、秀丸メールの「マクロ」メニューの「マクロ登
録...」の「秀丸メール本体側」のどこかに適当に登録します。さらに、「マクロ登
録のダイアログボックスに「常駐秀丸メール」のメニューがあるのでそれを選択して、
先ほど登録したマクロを常駐メニューから呼び出せるように指定します。

 そうすれば、常駐アイコンから簡単に、音のON/OFF切り替えが出来ます。

 とりあえずその作戦でどうでしょうか。

 「設定」メニューの中に「サウンドの許可」コマンドを別途用意するのも1つの案
としてはあるかと思いますけども、すべてのユーザー様に標準で見せるのもちょっと
やり過ぎな気もします。

[ ]
RE:02405 常駐アイコンでの受信音のオン・No.02440
yya さん 17/11/07 19:43
 
常駐秀丸メニューにマクロを表示できることを知りませんでした。
マクロまで作っていただいて,ありがとうございました。
少し改良して使ってみます。

ところで,常駐秀丸メニューでの「定期的に受信する」のように,
現在の状態がチェックマークで確認できるとやっぱり便利だとは思うのですが,
マクロ登録だとチェックマークを出すことは無理ですよね?

[ ]
RE:02440 常駐アイコンでの受信音のオン・No.02441
秀まるお2 さん 17/11/07 21:44
 
 常駐メニューにチェックマークを入れるのはマクロでは無理です。

 ですが、1ついい作戦がありました。マクロタイトルをマクロで書き換えることが
出来ました。

 仮に、今回のマクロを「マクロ1」に登録してたとすると、以下のマクロで常駐秀
丸メールのマクロコマンドのタイトルが変更できます。

    //音を鳴らす/鳴らさないの切り替え
    loaddll "tkinfo.dll";
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    $sound = getregstr("RecvSound");
    closereg;
    $flag = leftstr($sound, 1);
    if( $flag == "" ) {
        message "受信時に鳴らす音が何も指定されていません。マクロを中断しま
す。";
        endmacro;
    }
    if( $flag == "\x01" ) {
        //OFF
        $menuTitle = "受信時の音 = 鳴らさない";
        $sound = midstr( $sound, 1 );
    } else {
        $menuTitle = "受信時の音 = 鳴らす";
    }
    menu $menuTitle, "\x01", "   → 鳴らす", "   → 鳴らさない";
    if( result == 3 ) {
        //鳴らす
        openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
        writeregstr "RecvSound", $sound;
        writeregstr "MacT00", "■受信時の音: ON";
        closereg;
        #n = dllfunc("EnvChanged");
        message "受信時の音を鳴らすように設定しました。";
    } else {
        openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
        writeregstr "RecvSound", "\x01" + $sound;
        writeregstr "MacT00", "□受信時の音: OFF";
        closereg;
        #n = dllfunc("EnvChanged");
        message "受信時の音を鳴らさないように設定しました。";
    }

 こんな作戦でどうでしょうか。

 ちなみにこのマクロで書き換わるのは常駐メニューのコマンド名だけでして、「マ
クロ」メニューの中やツールバーのコマンド名は変更されないです。それについては
次のβ版にて、ちゃんと書き換わるようにしようと思います。

[ ]
RE:02441 常駐アイコンでの受信音のオン・No.02459
yya さん 17/11/10 20:10
 
自身のマクロ登録名を変えるのは,強引ではあるけど芸術的とも言えますね。
この方法により,受信音の現在の状態がすぐに確認できるようになったので,
何もメッセージなど出さずにいきなりオン・オフを切り替えるように
マクロを改変して使っていこうと思います。
どうもありがとうございました。

[ ]
RE:02459 常駐アイコンでの受信音のオン・No.02461
秀まるお2 さん 17/11/11 18:30
 
> 何もメッセージなど出さずにいきなりオン・オフを切り替えるように
> マクロを改変して使っていこうと思います。

 一応、マクロの例を書いておきます。

    //音を鳴らす/鳴らさないの切り替え
    loaddll "tkinfo.dll";
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    $sound = getregstr("RecvSound");
    $flag = leftstr($sound, 1);
    if( $flag == "" ) {
        message "受信時に鳴らす音が何も指定されていません。マクロを中断しま
す。";
        endmacro;
    }
    if( $flag == "\x01" ) {
        //OFF
        $sound = midstr( $sound, 1 );
        writeregstr "RecvSound", $sound;
        writeregstr "MacT00", "■受信時の音: ON";
        closereg;
        #n = dllfunc("EnvChanged");
        message "受信時の音を鳴らすように設定しました。";
    } else {
        writeregstr "RecvSound", "\x01" + $sound;
        writeregstr "MacT00", "□受信時の音: OFF";
        closereg;
        #n = dllfunc("EnvChanged");
        message "受信時の音を鳴らさないように設定しました。";
    }

[ ]