添付ファイルの改変ができないNo.05551
n'Guin さん 19/09/04 08:40
 
いつも大変お世話になっております.

メールを新規に作成して,「後で送信」することにして,未送信フォルダにあるメー
ルの添付ファイルは改変できます.

しかし,送信済みフォルダのメールを,未送信フォルダにコピーあるいは移動した場
合は,メールの添付ファイルを改変できません.

何かの設定があるのだと思いますが,どこの設定を変更したら良いのかがわかりませ
ん. どうか教えてください.

[ ]
RE:05551 添付ファイルの改変ができないNo.05552
秀まるお2 さん 19/09/04 09:24
 
 送信済みメールの添付ファイルは標準では上書き禁止属性に変更されるので、それ
のせいで、編集できない、または編集しても上書き保存でエラーになるんだろうと思
います。

 添付ファイルの上でマウス右ボタンを押して出てくるメニューから「プロパティ」
を実行して、「読み取り専用」のチェックマークをOFFにしてOKすれば保存できるよ
うになると思います。

 Windows10だと「読み取り専用」って名前ですが、古いWindowsだと「上書き禁止」
という名前になってると思います。この辺の名前がいろいろ変わってややこしいです
が。

 そもそも的に上書き禁止属性にしたくない場合は、「全般的な設定・上級者向け・
送信時のエンコード」の中にある

   □ 送信済みメールの添付ファイルを上書き禁止属性にする

 のオプションをOFFにする方法もあります。そうすると今後の添付ファイルは全部
簡単に書き換えできるようになります。

 受信したメールの添付ファイルも同様に上書き禁止属性がONになりますが、これは
「全般的な設定・上級者向け・デコード・添付ファイル」の中に同様のオプションが
あります。

[ ]
RE:05552 添付ファイルの改変ができないNo.05570
n'Guin さん 19/09/11 10:13
 
出張で返信が遅れてすみません.


> 添付ファイルの上でマウス右ボタンを押して出てくるメニューから「プロパテ
>ィ」を実行して、「読み取り専用」のチェックマークをOFFにしてOKすれば保存でき
>るようになると思います。
ありがとうございます.
了解です.

> そもそも的に上書き禁止属性にしたくない場合は、「全般的な設定・上級者向
>け・送信時のエンコード」の中にある
>
>   □ 送信済みメールの添付ファイルを上書き禁止属性にする
>
> のオプションをOFFにする方法もあります。そうすると今後の添付ファイルは全部
>簡単に書き換えできるようになります。
こちらのオプションで設定すると,送付した添付ファイルの着実性がいまひとつにな
るので,止めておきます.

さて,ご相談ですが,「読み取り専用」のチェックマークを OFF にする作戦でいこ
うと思うのですが,右クリック→プロパティの選択→「読み取り専用」のチェックを
はずす と結構手間がかかるので,マクロでやってもらえないかなぁと思いました.

CurrentPane 関数には,添付ファイル枠 がありますが,SelectPane関数にはありま
せん. また,その後の処理も Key Message を送る作戦しかないのかもしれません
が,何か良い知恵があったら,教えてください.

面倒な質問ですみません.



[ ]
RE:05570 添付ファイルの改変ができないNo.05572
秀まるお2 さん 19/09/11 11:08
 
 マクロで上書き禁止属性をOFFにする例を作ってみました。こんなマクロでどうで
しょうか。


    loaddll "tkinfo.dll";
    #attachCount = dllfunc("CountCurrentHeader", "X-Attach");
    if( #attachCount == 0 ) {
        message "添付ファイルがありません。";
        endmacro;
    }
    if( #attachCount != 1 ) {
        question "添付ファイルが複数あります。複数の添付ファイルすべての上書
き禁止属性をOFFにします。よろしいですか?";
    } else {
        question "添付ファイルの上書き禁止属性をOFFにします。よろしいですか?";
    }
    if( result != yes ) {
        endmacro;
    }
    #n = dllfunc("SetJapaneseCodePageMode", 1);

    #i = 0;
    #successCount = 0;
    while( #i < #attachCount ) {
        $path = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\"
+ dllfuncstr("CurrentHeader2", "X-Attach", #i );
        #attr = dllfunc("Bypass_GetFileAttributes", $path);
        if( #attr == -1 ) {
            message "添付ファイルの属性の取得に失敗しました。添付ファイル="
+ $path;
        } else {
            if( (#attr & 1) != 0 ) {
                #attr = #attr & 0xFFFFFFFE;
                #n = dllfunc("Bypass_SetFileAttributes", $path, #attr);
                if( #n == 0 ) {
                    message "添付ファイルの属性の変更に失敗しました。添付フ
ァイル=" + $path;
                } else {
                    #successCount = #successCount + 1;
                }
            }
        }
        #i = #i + 1;
    }
    message str(#successCount) + " 個の添付ファイルの属性を変更しました。";

[ ]
RE:05572 添付ファイルの改変ができないNo.05581
n'Guin さん 19/09/12 08:33
 
おはようございます.

> マクロで上書き禁止属性をOFFにする例を作ってみました。こんなマクロでどうで
>しょうか。

ヒントをいただこうと思っていたのに、マクロそのものをご提示いただき,ありがと
うございます.

秀丸メールから,WindowsAPI を呼び出すのだというところまでは,なんとか理解で
きました.とても考えつきませんでした.

教えていただいたマクロを元に,使いやすいようにしたいと思います.

ありがとうございました.

[ ]
RE:05572 添付ファイルの改変ができないNo.05625
n'Guin さん 19/09/25 20:52
 
いろいろ試してみました。

「未送信メールを開いた時」に自動実行するようにしてみたところ、
エラーメッセージが出るようです。

    #n = dllfunc("SetJapaneseCodePageMode", 1);

エラーメッセージは、上記のところで出ているようです。

この行をコメントアウトすると、何かまずいことが起こるでしょうか?
ヘルプを見た限りでは、よくわからないので、質問させていただきました。

ご教示をよろしくお願いいたします。

追伸: 何から何まですみません。

[ ]
RE:05625 添付ファイルの改変ができないNo.05627
秀まるお2 さん 19/09/26 09:15
 
 僕の作ったマクロは秀丸メール本体ウィンドウ上でしか実行できないようになって
しまってました。とりあえずそのSetJapaneseCodePageModeの行を削除すれば大丈夫
というか、削除しても問題ないです。

 よろしくお願いします。

[ ]
RE:05627 添付ファイルの改変ができないNo.05641
n'Guin さん 19/09/26 18:44
 
ご回答ありがとうございました。
安心して、使わせていただきます。

[ ]