.「オフラインでは使用できないWebページ」のメッセージダイアログを制御するには?

解決


takemoto  2002-08-15 16:05:11  No: 50305  IP: [192.*.*.*]

はじめて書き込ませていただきます。
よろしくお願い致します。

IEのオンライン・オフラインの切替処理を以下のようにやりました。

※この関数を呼び出す際、引数にtrue または、false を設定。
void SetInternetConnected(bool bConnected)
{
CInternetSession session; // CInternetSession クラス型
INTERNET_CONNECTED_INFO ici; // INTERNET_CONNECTED_INFO 構造体型

if ( bConnected == true )
{
// オンラインに設定
ici.dwConnectedState = INTERNET_STATE_CONNECTED;
ici.dwFlags = 0;
}
else
{
// オフラインに設定
ici.dwConnectedState = INTERNET_STATE_DISCONNECTED_BY_USER;
ici.dwFlags = ISO_FORCE_DISCONNECTED;
}

// 切り替え
session.SetOption(INTERNET_OPTION_CONNECTED_STATE, &ici, sizeof(ici));
}

上記のようにコーディングして、実際切替は可能になったのですが、
次の問題として、

オフライン時にリンク先にカーソルを合わせ、
リンク不可能マーク!?(禁止マーク)を選択すると表示される、
「オフラインでは使用できないWebページ」のメッセージダイアログを制御したいのです。

やりたいことは、
  1.「オフラインでは使用できないWebページ」のメッセージダイアログの出現時、
      接続ボタンを無効にする。

  2.「オフラインでは使用できないWebページ」のメッセージダイアログを表示させない。

できれは、2番目の方法が知りたいです。

使用環境  Windows2000/Visual C++ 6.0

まず、こんなことできるのでしょうか?
もし、可能であり、おわかりになる方がいらっしゃいましたら、ご教授をお願い致します。
何分、初心者な者で、よろしくお願い致します。

編集 削除
takemoto  2002-08-22 14:56:36  No: 50306  IP: [192.*.*.*]

自己レス

「オフラインでは使用できないWebページ」のメッセージダイアログ
の制御方法ですが、他の掲示版にてアドバイスをいただき、解決いたしました。
お手数お掛け致しました。

編集 削除
takemoto  2002-08-23 10:59:09  No: 50307  IP: [192.*.*.*]

下記のBBSにてNo140で書き込んで見たところアドバイスいただきました。
http://www.aaacafe.ne.jp/free/hidori/code.bbs

編集 削除
takemoto  2002-08-27 15:07:52  No: 50308  IP: [192.*.*.*]

別の掲示版にて以下のようなアドバイスをいただきました。

> まず、こんなことできるのでしょうか?

まっとうな方法では無理でしょうね。

どうしても実現したければ、問題のダイアログの特徴(=キャプション文字列、ダイアログ上のコントロールIDなどなど)を入念に調べた上でメッセージフックを仕掛けて、

>   1.「オフラインでは使用できないWebページ」のメッセージダイアログの出現時、
>       接続ボタンを無効にする。

ダイアログが表示された瞬間に、フックプロシージャ内で接続ボタンを無効化する。

>   2.「オフラインでは使用できないWebページ」のメッセージダイアログを表示させない。

同上、ダイアログが表示された瞬間に IDCANCEL なボタンが押されたことにして、強制的にダイアログを閉じてしまうとか。


既に気づいていると思いますが、処理のトリガーが「ダイアログのキャプション」というとてもあやふやなものなので、OSやブラウザのバージョンが異なると、期待通りの動作をしなくなる可能性がある点に注意してください。

# 多分、専用システムかなんかなんですよね?

編集 削除