Valeur de Registre AppInit_DLLs et Windows 95

Traductions disponibles Traductions disponibles
Numéro d'article: 134655 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

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

Propriétés

Numéro d'article: 134655 - Dernière mise à jour: mardi 1 mars 2005 - Version: 3.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Win32 Application Programming Interface sur le système suivant
    • Microsoft Windows 95
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows Millennium Edition
Mots-clés : 
kbmt kbcode kbkernbase kbregistry KB134655 KbMtfr
Traduction automatique
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
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
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.

Envoyer des commentaires

 

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