Você está offline; aguardando reconexão

AppInit_DLLs Registry Value and Windows 95

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.
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);						
4.00

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 134655 - Última Revisão: 03/01/2005 15:34:49 - Revisão: 3.2

Interface de Programação de Aplicativos do Microsoft Win32

  • kbmt kbcode kbkernbase kbregistry KB134655 KbMtpt
Comentários