AppInit_DLLs Registry Value and Windows 95

Traduções deste artigo Traduções deste artigo
ID do artigo: 134655 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Windows 95 não dá suporte para o carregamento de uma DLL no espaço de endereço de um processo através do uso do valor do Registro AppInit_DLLs. No Windows NT, para cada processo executado, Windows NT carrega as DLLs listadas no valor do Registro AppInit_DLLs no espaço de endereço do processo. Para funcionalidade semelhante no Windows 95, você pode implementar um gancho de todo o sistema. Este artigo mostra pelo exemplo de como fazê-lo.

Mais Informações

Para implementar um gancho de todo o sistema, você deve garantir que a função conectada (função de retorno de chamada) existe em uma DLL. Em seguida, quando a essa função é chamado, o sistema operacional mapeia a DLL conectada no espaço de endereço do aplicativo de destino. O real conectado função e funciona como parte do processo do aplicativo de destino.

Existem basicamente duas etapas envolvidas na criação de um gancho de todo o sistema:
  1. Crie uma DLL com uma função exportada é usada como a função de conexão. Na função de exemplo a seguir, a função de retorno de chamada é modelada após uma função de retorno de chamada necessários para implementar um WH_KEYBOARD gancho de todo o sistema:
          // Trap keyboard messages
          __declspec(dllexport) LRESULT CALLBACK HookFunction(
                           int code,
                           WPARAM wParam,
                           LPARAM lParam)
          {
             char szVCode[50];
    
             //display the virtual key code trapped
             sprintf(szVCode, "Virtual Key code: %lx", wParam);
             MessageBox(NULL, szVCode,"Key stroke", MB_OK);
                    :
                    :
          }
    
       The associated .def file for this DLL might resemble this:
    
          LIBRARY      HOOK
    
          EXPORTS
             HookFunction
    						
  2. Instale o gancho todo o sistema. Para instalar o gancho, a DLL deve ser carregada, endereço da função de gancho recuperado, e SetWindowsHookEx chamado com o endereço da função. Eis um exemplo:
          // add system-wide hook
          hHookDll = LoadLibrary("hook");
          hHookProc = (HOOKPROC) GetProcAddress(hHookDll, "HookFunction");
    
          // Install keyboard hook to trap all keyboard messages
          hSystemHook =  SetWindowsHookEx(WH_KEYBOARD,hHookProc,hHookDll,0);
    						
    depois que o aplicativo tiver terminado com gancho todo o sistema, não esqueça de desfazer o processo de conexão da seguinte maneira:
          // Remove the hook and unload the DLL used for the hooking process
          UnhookWindowsHookEx(hSystemHook);
          FreeLibrary(hHookDll);
    						

Propriedades

ID do artigo: 134655 - Última revisão: terça-feira, 1 de março de 2005 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32 nas seguintes plataformas
    • Microsoft Windows 95
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows Millennium Edition
Palavras-chave: 
kbmt kbcode kbkernbase kbregistry KB134655 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 134655
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

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