IEのかちかち音(クリック音)を消す

試しに、IEのかちかち音を消すツールを作ってみました。

ダウンロードは、こちらから。

20101019_02.jpg

やっぱり、かちかち音だから、かちかち山じゃなくちゃね。ということで、画像選びのほうが時間が掛かっていたり。

Visual Studio 2010 で作ったソース付きです。

要は、Internet Explorer が使っているレジストリを変更すればいい訳で、このレジストリを読み込むタイミングが WebBrowser の Navigate メソッドが呼ばれた時なんですね。

HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.Default

ソースは、こんな感じ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
private string keyCurrent = @"AppEvents\Schemes\Apps\Explorer\Navigating\.Current";
private string keyDefault = @"AppEvents\Schemes\Apps\Explorer\Navigating\.Default";
 
/// <summary>
/// クリック音をON
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOn_Click(object sender, EventArgs e)
{
    // .Defaultの値を読み込んで、.Currentに書き込み
    RegistryKey key = Registry.CurrentUser;
    key = key.OpenSubKey(keyDefault);
    string data = (string)key.GetValue(null);
    key.Close();
 
    key = Registry.CurrentUser;
    key = key.OpenSubKey(keyCurrent,true);
    key.SetValue(null, data);
    key.Close();
}
/// <summary>
/// クリック音をOFF
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOff_Click(object sender, EventArgs e)
{
    // .Currnetを @"" にする。
    RegistryKey key = Registry.CurrentUser;
    key = key.OpenSubKey(keyCurrent,true);
    key.SetValue(null, "");
    key.Close();
}

なので、アプリケーション毎に動作を変えたい場合は、

  • アプリケーション起動/終了時に、この値を変える。

あるいは

  • Navigate の呼び出し前後で、OFF/ON を繰り返す。

ってのが方法です。

前者の方法だと、アプリが立ち上がっている間は、IEのかちかち音が鳴らなくなるので、どちらかと云えば、後者がベスト。

ただ、レジストリを読み書きする回数が増えるのが、ちょっと嫌なので、アメブロ自動ペタの例で云えば、

  • ペタを開始する時に、OFFする。
  • ペタを終了した後で、ON にする(元に戻す)。

が良いかなと。

が、実は、WebBrowser を非表示(Visuble を false)にすると、かちかち音はならないのです。

なので、バックグラウンドで隠れ WebBrowser を利用しておいて、表面上は別の WebBrowser を、というのが良いですね。という訳で、こっちのほうは別のエントリーで。

カテゴリー: 開発 パーマリンク