Как отключить звук щелчка в Управлении WebBrowser

Неустранимая ошибка: вызов неопределенной функции XXX

Случается, когда вы пытаетесь вызвать функцию, которая еще не определена. Общие причины включают отсутствующие расширения и включают в себя объявление условной функции, функцию в объявлении функции или простые опечатки.

Пример 1 - Декларация условной функции

$someCondition = false;
if ($someCondition === true) {
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn() никогда не будет объявлено, потому что $someCondition не соответствует действительности.

Пример 2 - Функция в объявлении функции

function createFn() 
{
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn будет объявлен только после вызова createFn(). Обратите внимание, что последующие вызовы createFn() вызовут ошибку об обновлении существующей функции.

Вы также можете увидеть это для встроенной функции PHP. Попробуйте найти функцию в официальном руководстве и проверьте, к какому «расширению» (к нему принадлежит PHP-модуль), и какие версии PHP поддерживают его.

В случае отсутствующее расширение, установите это расширение и включите его в php.ini. Обратитесь к Инструкции по установке в Руководстве по PHP для расширения вашей функции. Возможно, вы также сможете включить или установить расширение с помощью диспетчера пакетов (например, apt в Debian или Ubuntu, yum в Red Hat или CentOS ) или панель управления в среде общедоступного хостинга.

Если функция была введена в более новой версии PHP из того, что вы используете, вы можете найти ссылки на альтернативные реализации в руководстве или в разделе комментариев , Если он был удален из PHP, найдите информацию о том, почему, поскольку это может быть уже не нужно.

В случае отсутствия включено, обязательно включите файл, объявляющий функцию перед вызовом функции.

В случае опечаток исправить опечатку.

Вопросы, относящиеся

23
задан Community 23 May 2017 в 12:33
поделиться

6 ответов

Для IE7 и выше, вы можете использовать это:

int feature = FEATURE_DISABLE_NAVIGATION_SOUNDS;
CoInternetSetFeatureEnabled(feature, SET_FEATURE_ON_PROCESS, true);

с использованием следующего импорта DLL

private const int FEATURE_DISABLE_NAVIGATION_SOUNDS = 21;
private const int SET_FEATURE_ON_THREAD = 0x00000001;
private const int SET_FEATURE_ON_PROCESS = 0x00000002;
private const int SET_FEATURE_IN_REGISTRY = 0x00000004;
private const int SET_FEATURE_ON_THREAD_LOCALMACHINE = 0x00000008;
private const int SET_FEATURE_ON_THREAD_INTRANET = 0x00000010;
private const int SET_FEATURE_ON_THREAD_TRUSTED = 0x00000020;
private const int SET_FEATURE_ON_THREAD_INTERNET = 0x00000040;
private const int SET_FEATURE_ON_THREAD_RESTRICTED = 0x00000080;

...

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

(найден на сайте обратной связи MS в качестве решения от команды WPF: https://connect.microsoft.

44
ответ дан 29 November 2019 в 01:12
поделиться

Как отмечено комментариями и ответом @James Кроули , это действительно возможно.

<час>

<забастовка>, Если Вы перешли в IE, и таким образом что управление, Вы получите щелчок. Если Вы не изменяете настройки или фальсифицируете его как эта ссылка, тогда не, Вы не можете избавиться от щелчка.

2
ответ дан Community 29 November 2019 в 01:12
поделиться

Ваша только другая опция состоит в том, чтобы отключить звук компьютера, но это - едва хорошая идея...

0
ответ дан Dan Walker 29 November 2019 в 01:12
поделиться

Таким образом, это - известное ограничение тогда...

там любой грязный взлом / обходное решение, такое как сцепляющиеся звуковые вызовы ActiveX и отключения их (Не уверенный, если это возможно, не идя слишком глубоко)

-1
ответ дан dr. evil 29 November 2019 в 01:12
поделиться

Я не могу заставить его работать на VB.net, попробовал следующее:

Private Const FEATURE_DISABLE_NAVIGATION_SOUNDS As Integer = 21
Private Const SET_FEATURE_ON_THREAD As Integer = &H1
Private Const SET_FEATURE_ON_PROCESS As Integer = &H2
Private Const SET_FEATURE_IN_REGISTRY As Integer = &H4
Private Const SET_FEATURE_ON_THREAD_LOCALMACHINE As Integer = &H8
Private Const SET_FEATURE_ON_THREAD_INTRANET As Integer = &H10
Private Const SET_FEATURE_ON_THREAD_TRUSTED As Integer = &H20
Private Const SET_FEATURE_ON_THREAD_INTERNET As Integer = &H40
Private Const SET_FEATURE_ON_THREAD_RESTRICTED As Integer = &H80

Declare Function CoInternetSetFeatureEnabled Lib "urlmon.dll" ( _
ByVal FeatureEntry As Integer, ByVal dwFlags As Long, _
ByVal fEnable As Long) As Long

...

CoInternetSetFeatureEnabled(FEATURE_DISABLE_NAVIGATION_SOUNDS, SET_FEATURE_ON_PROCESS, True)

Редактировать: обнаружил проблему, ее объявили. Верно одно:

<SecurityCritical, SuppressUnmanagedCodeSecurity, DllImport("urlmon.dll", ExactSpelling:=True)> _
Public Shared Function CoInternetSetFeatureEnabled(ByVal featureEntry As Integer, ByVal dwFlags As Integer, ByVal fEnable As Boolean) As Integer
End Function

Благодаря dmex на http://msdn.microsoft.com/en-us/library/ms537168%28VS.85%29.aspx

1
ответ дан 29 November 2019 в 01:12
поделиться

Я заключил эту функциональность в готовый к использованию класс. Я использовал часть информации из выбранного ответа и ссылку MSDN .

Надеюсь, это будет кому-то полезно.

Использование

URLSecurityZoneAPI.InternetSetFeatureEnabled(URLSecurityZoneAPI.InternetFeaturelist.DISABLE_NAVIGATION_SOUNDS, URLSecurityZoneAPI.SetFeatureOn.PROCESS, false);

URLSecurityZoneAPI

  /// <summary>
  /// Enables or disables a specified Internet Explorer feature control
  /// Minimum availability: Internet Explorer 6.0
  /// Minimum operating systems: Windows XP SP2
  /// </summary>
  internal class URLSecurityZoneAPI
  {

    /// <summary>
    /// Specifies where to set the feature control value
    /// http://msdn.microsoft.com/en-us/library/ms537168%28VS.85%29.aspx
    /// </summary>
    public enum SetFeatureOn : int
    {
      THREAD = 0x00000001,
      PROCESS = 0x00000002,
      REGISTRY = 0x00000004,
      THREAD_LOCALMACHINE = 0x00000008,
      THREAD_INTRANET = 0x00000010,
      THREAD_TRUSTED = 0x00000020,
      THREAD_INTERNET = 0x00000040,
      THREAD_RESTRICTED = 0x00000080
    }

    /// <summary>
    /// InternetFeaturelist
    /// http://msdn.microsoft.com/en-us/library/ms537169%28v=VS.85%29.aspx
    /// </summary>
    public enum InternetFeaturelist : int
    {
      OBJECT_CACHING = 0,
      ZONE_ELEVATION = 1,
      MIME_HANDLING = 2,
      MIME_SNIFFING = 3,
      WINDOW_RESTRICTIONS = 4,
      WEBOC_POPUPMANAGEMENT = 5,
      BEHAVIORS = 6,
      DISABLE_MK_PROTOCOL = 7,
      LOCALMACHINE_LOCKDOWN = 8,
      SECURITYBAND = 9,
      RESTRICT_ACTIVEXINSTALL = 10,
      VALIDATE_NAVIGATE_URL = 11,
      RESTRICT_FILEDOWNLOAD = 12,
      ADDON_MANAGEMENT = 13,
      PROTOCOL_LOCKDOWN = 14,
      HTTP_USERNAME_PASSWORD_DISABLE = 15,
      SAFE_BINDTOOBJECT = 16,
      UNC_SAVEDFILECHECK = 17,
      GET_URL_DOM_FILEPATH_UNENCODED = 18,
      TABBED_BROWSING = 19,
      SSLUX = 20,
      DISABLE_NAVIGATION_SOUNDS = 21,
      DISABLE_LEGACY_COMPRESSION = 22,
      FORCE_ADDR_AND_STATUS = 23,
      XMLHTTP = 24,
      DISABLE_TELNET_PROTOCOL = 25,
      FEEDS = 26,
      BLOCK_INPUT_PROMPTS = 27,
      MAX = 28
    }

    /// <summary>
    /// Enables or disables a specified feature control. 
    /// http://msdn.microsoft.com/en-us/library/ms537168%28VS.85%29.aspx
    /// </summary>            
    [DllImport("urlmon.dll", ExactSpelling = true), PreserveSig, SecurityCritical, SuppressUnmanagedCodeSecurity]
    [return: MarshalAs(UnmanagedType.Error)]
    static extern int CoInternetSetFeatureEnabled(int featureEntry, [MarshalAs(UnmanagedType.U4)] int dwFlags, bool fEnable);

    /// <summary>
    /// Determines whether the specified feature control is enabled. 
    /// http://msdn.microsoft.com/en-us/library/ms537164%28v=VS.85%29.aspx
    /// </summary>
    [DllImport("urlmon.dll", ExactSpelling = true), PreserveSig, SecurityCritical, SuppressUnmanagedCodeSecurity]
    [return: MarshalAs(UnmanagedType.Error)]
    static extern int CoInternetIsFeatureEnabled(int featureEntry, int dwFlags);

    /// <summary>
    /// Set the internet feature enabled/disabled
    /// </summary>
    /// <param name="feature">The feature from <c>InternetFeaturelist</c></param>
    /// <param name="target">The target from <c>SetFeatureOn</c></param>
    /// <param name="enabled">enabled the feature?</param>
    /// <returns><c>true</c> if [is internet set feature enabled] [the specified feature]; otherwise, <c>false</c>.</returns>
    public static bool InternetSetFeatureEnabled(InternetFeaturelist feature, SetFeatureOn target, bool enabled)
    {
      return (CoInternetSetFeatureEnabled((int)feature, (int)target, enabled) == 0);
    }

    /// <summary>
    /// Determines whether the internet feature is enabled.
    /// </summary>
    /// <param name="feature">The feature from <c>InternetFeaturelist</c></param>
    /// <param name="target">The target from <c>SetFeatureOn</c></param>
    /// <returns><c>true</c> if the internet feature is enabled; otherwise, <c>false</c>.
    /// </returns>
    public static bool IsInternetSetFeatureEnabled(InternetFeaturelist feature, SetFeatureOn target)
    {
      return (CoInternetIsFeatureEnabled((int)feature, (int)target) == 0);
    }

  }
13
ответ дан 29 November 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: