|
こんばんは、陸です。
作ってみました。
動作検証に時間がかかってしまい、ほぼ1日がかりになってしまいましたが。
あと、一応動作テストは何度も行ってますが、かなりがっつり書き直してるので、
レベルダウンのバグがあるかもしれません。
何かありましたら、ご連絡ください。
下記に新しいマクロを貼り付けます。
既存のマクロを開いて、内容をすべて削除した上で、下記のマクロを貼り付けて上
書き保存してください。
----- マクロ内容 -----
// 秀丸エディタ・秀丸メールで全文読みマクロ
// Ver.1.01
// Copyright (C) 陸
// 更新履歴
// 2020年1月11日(Ver.1.01):
// 1.秀丸メール上で実行された場合に、既読にする動作と、読み上げが終了したと
きに、元の枠に戻す動作を追加。
// 2.空行を読み飛ばすように仕様変更。
// 3.読み上げが少しなめらかに進むようになった。
// 4.文字列の取得方法を変更し、1行になっている文字列は区切らずに読ませるよ
うに変更。この影響で秀丸メールのヘッダ部分は飛ばして読み上げるようになってし
まったけども。
// 5.次の行への移動方法を行数を指定して移動するように仕様変更。
// 6.その他、ソースコードを少し整理した。
// 2019年12月10日(Ver.1.00):初回バージョン。
disablebreak;
disabledraw;
setcompatiblemode 0x0F;
ddeinitiate "HidemaruReader", "Read";
if( platform & 0x800000 ) {
#tkinfo = loaddll( "tkinfo.dll" );
if( #tkinfo == 0 ) {
message "「tkinfo.dll」のロードに失敗しました。\n既読への切り替えは行われ
ないため、手動で既読に切り替えてください。";
#pane = -1;
}else{
if( dllfunc( #tkinfo, "IsHidemaruMailMain" ) ) {
#pane = dllfunc( #tkinfo, "CurrentPane" );
#unread = dllfunc( #tkinfo, "IsUnread" );
if( #unread == 1 ) #n = dllfunc( #tkinfo, "SwitchUnread" );
} else {
#pane = -1;
}
}
}else{
#pane = -1;
}
#y = lineno;
while( #y <= linecount2 ) {
#i = keypressed;
if( #i == 0x1B ) goto end;
if( linelen == 0 ) {
$str = "";
} else {
$str = gettext2( 0, lineno, linelen2, lineno, 1 );
}
if( $str != "" ) {
ddeexecute "!" + $str;
sleep 100;
while( dderequest( "SoundStatus" ) != "" ) {
sleep 50;
#i = keypressed;
if( #i == 0x1B ) {
goto end;
} else {
continue;
}
}
}
sleep 10;
#y = lineno + 1;
moveto2 column, #y;
}
goto end;
end:
sleep 50;
if( #tkinfo != 0 ) {
if( #pane != -1 ) #n = dllfunc( #tkinfo, "SelectPane", #pane );
freedll( #tkinfo );
}
ddeexecute "!終了";
ddeterminate;
enabledraw;
enablebreak;
enableerrormsg;
endmacro;
--------------------
それでは。
|
|