默认情况下,IE内核的网页浏览框(WebBrowser、CHtmlView、CHtmlDialog等控件)在跳转网页、点击按钮时会发出声音,用CoInternetSetFeatureEnabled这个API可以禁止掉。

易语言代码:

.版本 2

.子程序 禁止网页跳转声音

CoInternetSetFeatureEnabled (#FEATURE_DISABLE_NAVIGATION_SOUNDS, #SET_FEATURE_ON_PROCESS, 1)

.DLL命令 CoInternetSetFeatureEnabled, 整数型, "urlmon", "CoInternetSetFeatureEnabled"
    .参数 FeatureEntry, 整数型, , INTERNETFEATURELIST
    .参数 dwFlags, 整数型, , DWORD
    .参数 fEnable, 整数型, , BOOL

.常量 FEATURE_DISABLE_NAVIGATION_SOUNDS, "21", , 禁止跳转声音
.常量 SET_FEATURE_ON_PROCESS, "2", , 仅对当前进程有效

VC/C++代码:

#include <urlmon.h>
#ifndef FEATURE_DISABLE_NAVIGATION_SOUNDS
#define FEATURE_DISABLE_NAVIGATION_SOUNDS 21
#endif
#ifndef SET_FEATURE_ON_PROCESS
#define SET_FEATURE_ON_PROCESS 0x00000002
#endif

void DisableClickSounds()  
{  
    CoInternetSetFeatureEnabled((INTERNETFEATURELIST)FEATURE_DISABLE_NAVIGATION_SOUNDS,SET_FEATURE_ON_PROCESS,true);  
}

C#代码:

const int FEATURE_DISABLE_NAVIGATION_SOUNDS = 21;
const int SET_FEATURE_ON_PROCESS = 0x00000002;

[DllImport("urlmon.dll")]
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
static extern int CoInternetSetFeatureEnabled(
    int FeatureEntry,
    [MarshalAs(UnmanagedType.U4)] int dwFlags,
    bool fEnable);

static void DisableClickSounds()
{
    CoInternetSetFeatureEnabled(
        FEATURE_DISABLE_NAVIGATION_SOUNDS,
        SET_FEATURE_ON_PROCESS,
        true);
}
最后修改:2023 年 11 月 24 日
如果觉得我的文章对你有用,请随意赞赏