|
>■3.もしかしてですが、「送受信の開始直前」の所に何かマクロかDLLを登録
>されているとしたら、それが関係してるってことは無いでしょうか。例えばその
>マクロで別アカウントを選択するようなことをすると、そっちで受信が開始され
>てしまいます。
マクロを DLL 化した以下のコードが原因でした。
extern "C" void _cdecl AtSendReceive() {
int n = GetTransmitCommandCode();
if (n == 40003 || // 受信
n == 40216 || // 送受信
n == 40024 || // すべて送受信
n == 40143 || // すべて受信
n == 40074 || // リモートメール
n == 40209 || // リモートメール - 現在メールの再受信
n == 1) { // 定期受信
int i = 0;
while (true) {
std::string account(Account(i));
if (account == "") {
break;
}
LoadAccountProp(account.c_str());
SetAccountProp("fRecvLog", 1);
SaveAccountProp();
i++;
}
DWORD filterLog = 2;
set_reg_value(FILTER_LOG_KEY, REG_DWORD, (CONST BYTE *)&filterLog, sizeof
DWORD);
EnvChanged();
}
}
以下は元のマクロで、同じ処理をしていますが、こちらだと問題が発生しません。
#n = dllfunc("GetTransmitCommandCode");
if (#n == 40003 ||
#n == 40216 ||
#n == 40024 ||
#n == 40143 ||
#n == 40074 ||
#n == 40209 ||
#n == 1) {
#i = 0;
while (true) {
$account = dllfuncstr("Account", #i);
if ($account == "") {
break;
}
#n = dllfunc("LoadAccountProp", $account);
#n = dllfunc("SetAccountProp", "fRecvLog", 1);
#n = dllfunc("SaveAccountProp");
#i = #i + 1;
}
openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
writeregnum "FilterLog", 2;
closereg;
#n = dllfunc("EnvChanged");
}
DLL のコードが断片ですみません。
必要であれば、すべてお送りします。
|
|