--------------------------------------------------------------------------------

Bonjour ,

Dans mon application j'ai besoin d'utiliser un driver specifique et pour cela je voudrais le charger au lancement de mon application. Je copie donc la DLL adequat dans le repertoire WIndows.
Puis je renseigne mon registre de la façon suivante :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
RegistryKey rk = Registry.LocalMachine.CreateSubKey("Drivers").CreateSubKey("MesDrivers").CreateSubKey("WebCam");
            rk.SetValue("Index", 2,RegistryValueKind.DWord);
                rk.SetValue("Prefix", "CAM", RegistryValueKind.String);
                rk.SetValue("Dll", "WebCam.dll", RegistryValueKind.String);
                rk.SetValue("Order", 0, RegistryValueKind.DWord);
                rk.SetValue("FriendlyName", "Driver WebCam USB", RegistryValueKind.String);
                rk.SetValue("Context", 1, RegistryValueKind.DWord);
                rk.Close();
Ensuite je fais appel a ActiveDeviceEx de la façon suivante :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
[DllImport("coredll.dll", CharSet = CharSet.Unicode)]
        public static extern IntPtr ActivateDeviceEx(string  lpszDevKey, IntPtr lpRegEnts, int cRegEnts,IntPtr lpvParam);


         public WebCamInit()
        {
            hDevice = ActivateDeviceEx(@"\HK_LOCAL_MACHINE\Drivers\MesDrivers\WebCam", IntPtr.Zero, 0, IntPtr.Zero);
}
Seulement la methode me retourne 0. Et echoue. JE sais que l'on peut ecrire dans la clé de registre Drivers\BuiltIn et redemarrer le device pour que le driver soit pris en compte mais je preferais eviter d'avoir a redemarrer ma machine.

SI vous avez une idée, je ne trouve pas d'exemple sur cette methode .

THibaud