Valeur de Registre AppInit_DLLs et Windows 95

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 134655
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
Résumé
Windows 95 ne prend pas en charge le chargement d'une DLL dans un espace d'adressage du processus par le biais de l'utilisation de la valeur de Registre AppInit_DLLs. Dans Windows NT, Windows NT pour chaque processus exécuté, charge les DLL répertoriées dans la valeur de Registre AppInit_DLLs dans espace d'adressage du processus. Pour une fonctionnalité similaire dans Windows 95, vous pouvez implémenter un raccordement à l'échelle du système. Cet article montre, par exemple, comment le faire.
Plus d'informations
Pour implémenter un raccordement à l'échelle du système, vous devez vous assurer que la fonction raccordée (fonction de rappel) existe dans une DLL. Puis, lorsque cette fonction est appelée, le système d'exploitation mappe la DLL raccordée dans l'espace d'adressage de l'application cible. Le réel raccordé fonction puis fonctionne en tant que partie du processus de l'application cible.

Il existe essentiellement deux étapes impliquées dans la création d'un raccordement à l'échelle du système :
  1. Créer une DLL avec une fonction exportée qui est utilisée comme la fonction de raccordement. Dans l'exemple de fonction qui suit, la fonction de rappel est modélisée d'après une fonction de rappel nécessaires pour implémenter un WH_KEYBOARD raccordement à l'échelle du système :
          // 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. Installez le raccordement à l'échelle du système. Pour installer le raccordement, la DLL doit être chargée, adresse de la fonction de raccordement récupérée, et SetWindowsHookEx appelée avec l'adresse de la fonction. Voici un exemple :
          // 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);						
    une fois l'application a terminé avec le raccordement à l'échelle du système, veillez à annuler le processus de raccordement comme suit :
          // Remove the hook and unload the DLL used for the hooking process      UnhookWindowsHookEx(hSystemHook);      FreeLibrary(hHookDll);						
4.00

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 134655 - Dernière mise à jour : 03/01/2005 15:34:49 - Révision : 3.2

Microsoft Win32 Application Programming Interface

  • kbmt kbcode kbkernbase kbregistry KB134655 KbMtfr
Commentaires