问题描述
我想点击WebBrowser控件链接时,在不改变用户注册表禁用恼人的声音。我发现,这可以通过,还解释来完成文档here.但我不知道如何实现它于2010年德尔福,因为我得到包括URLMON单位到项目中并没有太多的文档那里后未声明的标识符的错误。
I am trying to deactivate the annoying sound when clicking a link in WebBrowser control, WITHOUT changing the user registry. I've found documentation that this can be done through CoInternetIsFeatureEnabled, also explained here. But i have no idea how to implement it on Delphi 2010, since i am getting "Undeclared Identifier" error after including URLMon unit into the project and not much documentation out there.
任何想法?
推荐答案
CoInternetIsFeatureEnabled()
和 CoInternetSetFeatureEnabled()
不包括在UrlMon.pas的D2010的副本。您必须手动声明他们,例如:
CoInternetIsFeatureEnabled()
and CoInternetSetFeatureEnabled()
are not included in D2010's copy of UrlMon.pas. You will have to declare them manually, eg:
const
GET_FEATURE_FROM_THREAD = $00000001;
GET_FEATURE_FROM_PROCESS = $00000002;
GET_FEATURE_FROM_REGISTRY = $00000004;
GET_FEATURE_FROM_THREAD_LOCALMACHINE = $00000008;
GET_FEATURE_FROM_THREAD_INTRANET = $00000010;
GET_FEATURE_FROM_THREAD_TRUSTED = $00000020;
GET_FEATURE_FROM_THREAD_INTERNET = $00000040;
GET_FEATURE_FROM_THREAD_RESTRICTED = $00000080;
SET_FEATURE_ON_THREAD = $00000001;
SET_FEATURE_ON_PROCESS = $00000002;
SET_FEATURE_IN_REGISTRY = $00000004;
SET_FEATURE_ON_THREAD_LOCALMACHINE = $00000008;
SET_FEATURE_ON_THREAD_INTRANET = $00000010;
SET_FEATURE_ON_THREAD_TRUSTED = $00000020;
SET_FEATURE_ON_THREAD_INTERNET = $00000040;
SET_FEATURE_ON_THREAD_RESTRICTED = $00000080;
type
INTERNETFEATURELIST = (
FEATURE_OBJECT_CACHING,
FEATURE_ZONE_ELEVATION,
FEATURE_MIME_HANDLING,
FEATURE_MIME_SNIFFING,
FEATURE_WINDOW_RESTRICTIONS,
FEATURE_WEBOC_POPUPMANAGEMENT,
FEATURE_BEHAVIORS,
FEATURE_DISABLE_MK_PROTOCOL,
FEATURE_LOCALMACHINE_LOCKDOWN,
FEATURE_SECURITYBAND,
FEATURE_RESTRICT_ACTIVEXINSTALL,
FEATURE_VALIDATE_NAVIGATE_URL,
FEATURE_RESTRICT_FILEDOWNLOAD,
FEATURE_ADDON_MANAGEMENT,
FEATURE_PROTOCOL_LOCKDOWN,
FEATURE_HTTP_USERNAME_PASSWORD_DISABLE,
FEATURE_SAFE_BINDTOOBJECT,
FEATURE_UNC_SAVEDFILECHECK,
FEATURE_GET_URL_DOM_FILEPATH_UNENCODED,
FEATURE_TABBED_BROWSING,
FEATURE_SSLUX,
FEATURE_DISABLE_NAVIGATION_SOUNDS,
FEATURE_DISABLE_LEGACY_COMPRESSION,
FEATURE_FORCE_ADDR_AND_STATUS,
FEATURE_XMLHTTP,
FEATURE_DISABLE_TELNET_PROTOCOL,
FEATURE_FEEDS,
FEATURE_BLOCK_INPUT_PROMPTS,
FEATURE_ENTRY_COUNT
);
function CoInternetIsFeatureEnabled(FeatureEntry: INTERNETFEATURELIST; dwFlags: DWORD): HRESULT; stdcall; external 'urlmon.dll'
function CoInternetSetFeatureEnabled(FeatureEntry: INTERNETFEATURELIST; dwFlags: DWORD; fEnable: BOOL): HRESULT; stdcall; external 'urlmon.dll'
begin
if CoInternetIsFeatureEnabled(FEATURE_DISABLE_NAVIGATION_SOUNDS, GET_FEATURE_FROM_PROCESS) = S_FALSE then
CoInternetSetFeatureEnabled(FEATURE_DISABLE_NAVIGATION_SOUNDS, SET_FEATURE_ON_PROCESS, True);
end;
这篇关于CoInternetIsFeatureEnabled在Delphi2010的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!