- 題名: 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
この場合、原因は何が考えられるでしょうか?