- 題名: WebBrowser1のクリック音を消す方法
- 日時: 2010/11/14 16:52:49
- ID: 27560
- この記事の返信元:
- (なし)
- この記事への返信:
- [27561] Re[1]: WebBrowser1のクリック音を消す方法2010/11/14 18:10:15
- [27575] Re[1]: WebBrowser1のクリック音を消す方法2010/11/16 10:24:56
- ツリーを表示
■No27560に返信(ザナドゥさんの記事) > 通常ですと、WebBrowser1のプロパティで、visible=Falseで > クリック音も消えるはずなのですが、音が鳴ってしまいます。 クリックではなく、ナビゲーションの音です。 IE のページ遷移やエクスプローラでフォルダを開く際に鳴ります。 コントロールパネルのサウンドとオーディオのプロパティから、 プログラムイベントの「ナビゲーション開始」で鳴らないようにもできます。 なお、この設定はレジストリの下記の場所に保存されています。 HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.Default > 以下のようにコードで指定しても鳴ってしまいます。 > WebBrowser1.Visible = False > WebBrowser1.Navigate "http://www.yahoo.com/" > WebBrowser1.Visible = True これは本当に VB2005 のコードですか? 文法的には VB6 のコードに見えますが…。 > この場合、原因は何が考えられるでしょうか? スクリプトによる遷移など、表示された後で遷移した場合には Navigating 音が再生されます。完全に消してしまいたい場合には、 urlmon.dll の CoInternetSetFeatureEnabled API で FEATURE_DISABLE_NAVIGATION_SOUNDS を指定してみてください。 Private Declare Unicode Function CoInternetSetFeatureEnabled Lib "urlmon" _ (ByVal FeatureEntry As Integer, _ ByVal dwFlags As Integer, _ <MarshalAs(UnmanagedType.Bool)> ByVal fEnable As Boolean) As Integer Public Shared Sub DisableNavigationSound(ByVal Enabled As Boolean) Const FEATURE_DISABLE_NAVIGATION_SOUNDS As Integer = 21 Const SET_FEATURE_ON_PROCESS As Integer = &H2 CoInternetSetFeatureEnabled(FEATURE_DISABLE_NAVIGATION_SOUNDS, SET_FEATURE_ON_PROCESS, Enabled) End Sub
■No27595に返信(ザナドゥさんの記事) >>・IE のバージョンは何ですか? XP の Service Pack はどうなっていますか? > XPsp3、IE8です。 当方も同じ環境ですが、以下のコードで切り替えられています。 何が違うのかな…。 Imports System.Runtime.InteropServices Public Class Form1 Private WebBrowser1 As New WebBrowser() Private TextBox1 As New TextBox() With {.Text = "http://mainichi.jp/"} Private WithEvents Button1 As New Button() With {.Text = "Go"} Private WithEvents CheckBox1 As New CheckBox() With {.Text = "ナビ音あり"} Private Declare Unicode Function CoInternetSetFeatureEnabled Lib "urlmon" _ (ByVal FeatureEntry As Integer, _ ByVal dwFlags As Integer, _ <MarshalAs(UnmanagedType.Bool)> ByVal fEnable As Boolean) As Integer Private Declare Unicode Function CoInternetIsFeatureEnabled Lib "urlmon" _ (ByVal FeatureEntry As Integer, _ ByVal dwFlags As Integer) As Integer Private Const FEATURE_DISABLE_NAVIGATION_SOUNDS As Integer = 21 Private Const SET_FEATURE_ON_PROCESS As Integer = &H2 Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load Controls.Clear() CheckBox1.Dock = DockStyle.Top CheckBox1.Padding = New Padding(2) Controls.Add(CheckBox1) TextBox1.Location = New Point(2, CheckBox1.Bottom + 2) TextBox1.Width = ClientSize.Width - Button1.Width - 6 TextBox1.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or AnchorStyles.Right Controls.Add(TextBox1) Button1.Location = New Point(TextBox1.Right + 2, CheckBox1.Bottom + 2) Button1.Anchor = AnchorStyles.Top Or AnchorStyles.Right Controls.Add(Button1) WebBrowser1.Location = New Point(2, Math.Max(TextBox1.Bottom, Button1.Bottom) + 2) WebBrowser1.Size = New Size(ClientSize.Width - 4, _ ClientSize.Height - WebBrowser1.Top - 4) WebBrowser1.Anchor = AnchorStyles.Left Or AnchorStyles.Right _ Or AnchorStyles.Top Or AnchorStyles.Bottom Controls.Add(WebBrowser1) CheckBox1.Checked = NavigationSoundEnabled AddHandler CheckBox1.CheckedChanged, AddressOf CheckBox1_CheckedChanged End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) NavigationSoundEnabled = CheckBox1.Checked End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click WebBrowser1.Navigate(TextBox1.Text) End Sub Friend Property NavigationSoundEnabled() As Boolean Get Select Case CoInternetIsFeatureEnabled(FEATURE_DISABLE_NAVIGATION_SOUNDS, _ SET_FEATURE_ON_PROCESS) Case 0 : Return False Case 1 : Return True Case Else : Throw New NotSupportedException() End Select End Get Set(ByVal value As Boolean) CoInternetSetFeatureEnabled(FEATURE_DISABLE_NAVIGATION_SOUNDS, _ SET_FEATURE_ON_PROCESS, Not value) End Set End Property End Class
分類:[.NET]
WebBrowserで、自動でリンクを伝って何カ所か回り、HPを保存するプログラムを作っています。
その時に出るカチカチ音が気になって仕方ありません。
通常ですと、WebBrowser1のプロパティで、visible=Falseでクリック音も消えるはずなのですが、音が鳴ってしまいます。
以下のようにコードで指定しても鳴ってしまいます。
WebBrowser1.Visible = False
WebBrowser1.Navigate "http://www.yahoo.com/"
WebBrowser1.Visible = True
この場合、原因は何が考えられるでしょうか?