Visualizzazione del messaggio di errore "Impossibile creare Hook" quando si esegue un'applicazione basata su .NET Framework 1.1 in un computer basato su Windows Vista

Traduzione articoli Traduzione articoli
Identificativo articolo: 925168 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue un'applicazione basata su Microsoft .NET Framework 1.1 in un computer basato su Microsoft Windows Vista, si utilizza una classe System.Windows.Forms.SendKeys nell'applicazione. Se il servizio Controllo accesso utente è avviato, l'applicazione genera un'eccezione di protezione. Viene inoltre visualizzato il seguente messaggio di errore:
Impossibile creare Hook

Cause

Questo problema si verifica perché .NET Framework 1.1 crea un journal hook globale per la classe SendKeys. Questo hook non dispone delle autorizzazioni per accedere a Windows Vista se il servizio Controllo accesso utente è avviato.

Risoluzione

Per risolvere questo problema, scaricare una versione GDR (General Distribution Release) da Microsoft Windows Update e dall'Area download Microsoft. Il seguente file è disponibile per il download dall'Area download Microsoft:

Riduci l'immagineEspandi l'immagine
Download
Download del pacchetto KB925168.

Per ulteriori informazioni sul download di file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
119591 Come ottenere file di supporto Microsoft dai servizi online
Il file è stato controllato e non contiene virus. Microsoft ha utilizzato il software antivirus più recente disponibile al momento della data di pubblicazione del file. Il file viene salvato su server con un livello di protezione avanzata che impedisce modifiche non autorizzate.

Prerequisiti

Occorre avere .NET Framework 1.1 installato per applicare questa versione GDR.

Informazioni sulla sostituzione della versione GDR

Questa versione GDR non sostituisce alcuna altra versione GDR installata sul computer.

Richiesta di riavvio

Non è necessario riavviare il computer una volta applicata questa versione GDR.

Status

Microsoft ha confermato che questo problema si verifica con i prodotti elencati nella sezione "Le informazioni in questo articolo si applicano a" del presente articolo.

Informazioni

La versione GDR consente di aggiornare .NET Framework 1.1. Dopo avere applicato la versione GDR, .NET Framework 1.1 chiama l'API User32 SendInput anziché creare il journal hook globale. Per impostazione predefinita, la classe SendKeys tenta di utilizzare il journal hook globale alla prima esecuzione di un'applicazione su un computer basato su Windows Vista. Se la classe SendKeys non utilizza il journal hook globale, viene chiamata l'API User32 SendInput per inviare la sequenza tasti. Tutte le successive chiamate alla classe SendKeys vengono indirizzate direttamente all'API User32 SendInput. Pertanto, la classe SendKeys può essere eseguita correttamente in un computer basato su Windows Vista.

Nota Questa versione GDR non riguarda i sistemi operativi privi del servizio Controllo accesso utente.

È possibile aggiungere il file di configurazione dell'applicazione per configurare il metodo System.Windows.Forms.SendKeys.Send. Se si aggiunge il seguente codice di configurazione al file di configurazione dell'applicazione, viene imposto l'utilizzo del journal hook globale per l'invio di sequenze tasti in tutte le piattaforme.
<configuration>
  <appSettings>
    <add key="SendKeys" value="JournalHook"/>
  </appSettings>
</configuration>
Nota Se si aggiunge questo codice di configurazione, la classe SendKeys genera un'eccezione di protezione quando l'applicazione viene eseguita in un computer basato su Windows Vista in cui il servizio Controllo accesso utente è avviato.

Se si aggiunge il seguente codice di configurazione al file di configurazione dell'applicazione, si impone alla classe SendKeys la chiamata all'API User32 SendInput per l'invio delle sequenze tasti in tutte le piattaforme.
<configuration>
  <appSettings>
    <add key="SendKeys" value="SendInput"/>
  </appSettings>
</configuration>
Nota Se si aggiunge questo codice di configurazione, la classe SendKeys chiama sempre l'API User32 SendInput in tutte le piattaforme. Se esiste già un file di configurazione dell'applicazione, è possibile limitarsi ad aggiungervi la sezione AppSetting.

Per ulteriori informazioni sui file di configurazione delle applicazioni, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/ms229689(vs.71).aspx
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Proprietà

Identificativo articolo: 925168 - Ultima modifica: lunedì 21 maggio 2007 - Revisione: 1.2
Le informazioni in questo articolo si applicano a
  • Microsoft .NET Framework 1.1
Chiavi: 
kberrmsg kbqfe kbpubtypekc KB925168
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com