Valor de registo AppInit_DLLs e Windows 95

Traduções de Artigos Traduções de Artigos
Artigo: 134655 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

O Windows 95 não suporta o carregamento de uma DLL no espaço de endereço de um processo através da utilização de valor de registo AppInit_DLLs. No Windows NT, para cada processo executado, Windows NT carrega as DLLs listadas no valor de registo AppInit_DLLs na espaço de endereços do processo. Para a funcionalidade semelhante no Windows 95, pode implementar uma rotina de todo o sistema. Este artigo mostra como fazê-lo por exemplo.

Mais Informação

Para implementar uma rotina de todo o sistema, tem de assegurar que a função (função de chamada de retorno) hooked existe uma DLL. Em seguida, quando a esta função é chamado, o sistema operativo mapeia a DLL hooked no espaço de endereço a aplicação de destino. Em seguida a função ligado, funciona como parte do processo da aplicação de destino.

Existem essencialmente dois passos envolvidos na criação de uma rotina de sistema:
  1. Crie uma DLL com uma função exportada é utilizada como a função ligar. Na função de exemplo que se segue, a função de chamada de retorno é modelada depois de uma função de chamada de retorno necessários para implementar um WH_KEYBOARD hook do 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 a rotina de todo o sistema. Para instalar a rotina, a DLL deve ser carregada, endereço a função de hook obtido, e SetWindowsHookEx chamado com endereço a 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 de concluída a aplicação com a rotina de todo o sistema, não se esqueça anular o processo de ligar da seguinte forma:
          // Remove the hook and unload the DLL used for the hooking process
          UnhookWindowsHookEx(hSystemHook);
          FreeLibrary(hHookDll);
    						

Propriedades

Artigo: 134655 - Última revisão: 1 de março de 2005 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft Win32 Application Programming Interface 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 134655
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

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