Domanda

Da questa risposta CoInternetIsFeatureEnabled in Delphi2010

Qualcuno sa come fermare il suono del clic.Questo non sembra funzionare in Delphi XE quando lo inserisco in un file pas separato.Ne mancano alcuni.e altri motivi per cui non si compila, quindi sono un po 'bloccato.

Ecco cosa ho fatto.

unit untUrlMon;

interface

uses
    Windows;

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'

implementation

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;
È stato utile?

Soluzione

Immagino che tu abbia bisogno di qualcosa del genere:

unit untUrlMon;

implementation

uses
  Windows;

const
  SET_FEATURE_ON_PROCESS = $00000002;
  FEATURE_DISABLE_NAVIGATION_SOUNDS = 21;

function CoInternetSetFeatureEnabled(FeatureEntry: DWORD; dwFlags: DWORD; fEnable: BOOL): HRESULT; stdcall; external 'urlmon.dll';

initialization
  CoInternetSetFeatureEnabled(FEATURE_DISABLE_NAVIGATION_SOUNDS, SET_FEATURE_ON_PROCESS, True); 

end.

Altri suggerimenti

Se sostituisci il finale "end;"con "fine".dovrebbe essere compilato.

Credo che anche tu abbia bisogno di ";"dopo le due dichiarazioni di funzione (dopo la parte "urlmon.dll esterno").

L '"inizio / fine" finale viene quindi eseguito automaticamente in ogni programma in cui includi questa unità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top