[ 新規に投稿する ]

常駐アイコンでの受信音のオン・オフの切り替え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 "受信時の音を鳴らさないように設定しました。";
    }
[ ]

[ 新規に投稿する ]