問題の「クリック音」は実際にはシステム全体の設定であるため、アプリケーションにフォーカスがあるときは無効にしてから、アプリケーションが終了すると再び有効にします/フォーカスを失う。WebBrowserを無効にする方法アプリケーションでのみ「クリックサウンド」
元々、私はこの問題をstackoverflowでここに聞きたいと思っていましたが、まだベータ版ではありませんでした。だから、答えを求めてグーグルで情報を見つけ出したら、私は次のことを思いついて、私がベータ版になった今ここに投稿することに決めました。
- が
- が
FormClosingを
private void Form1_Activated(object sender, EventArgs e) { // Disable the sound when the program has focus WebClickSound.Enabled = false; } private void Form1_Deactivate(object sender, EventArgs e) { // Enable the sound when the program is out of focus WebClickSound.Enabled = true; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { // Enable the sound on app exit WebClickSound.Enabled = true; }
Thの無効化有効化:
using System;
using Microsoft.Win32;
namespace HowTo
{
class WebClickSound
{
/// <summary>
/// Enables or disables the web browser navigating click sound.
/// </summary>
public static bool Enabled
{
get
{
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"AppEvents\Schemes\Apps\Explorer\Navigating\.Current");
string keyValue = (string)key.GetValue(null);
return String.IsNullOrEmpty(keyValue) == false && keyValue != "\"\"";
}
set
{
string keyValue;
if (value)
{
keyValue = "%SystemRoot%\\Media\\";
if (Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor > 0)
{
// XP
keyValue += "Windows XP Start.wav";
}
else if (Environment.OSVersion.Version.Major == 6)
{
// Vista
keyValue += "Windows Navigation Start.wav";
}
else
{
// Don't know the file name so I won't be able to re-enable it
return;
}
}
else
{
keyValue = "\"\"";
}
// Open and set the key that points to the file
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"AppEvents\Schemes\Apps\Explorer\Navigating\.Current", true);
key.SetValue(null, keyValue, RegistryValueKind.ExpandString);
isEnabled = value;
}
}
}
}
は次にメインフォームで、私たちは、これらの3つのイベントで上記のコードを使用します私が現在見ている1つの問題は、プログラムがクラッシュした場合、アプリケーションを再起動するまでクリック音が鳴りませんが、そのことを知らないことです。
あなたはどう思いますか?これは良い解決策ですか?どのような改善ができますか?
私はこの行に問題がありました:isEnabled = value; 私はちょうどそれをコメントしましたが、それが意図されていたことを知りたいのですが、 – Cristo