Enregistrement ActiveX: possible dans LOCAL_MACHINE ?? - Delphi/Pascal - Programmation
Marsh Posté le 31-03-2003 à 09:25:49
et si tu installes ton soft en administrateur, les ocx ne seront ils pas registrés au bon endroit ?
Marsh Posté le 31-03-2003 à 09:32:42
justement non. c en intallant en administrateur qu'on s'est rendu compte que les utilisateurs autre qu'administrateurs ne pouvaient utiliser l'application. En fait l'application s'articule autour d'un executable-activeXs qui doit s'enregistrer lors de l'installation (c pas un controle activeX comme je l'ai dis auparavant, il n'y a pas de fichier ocx, juste plusieurs ficheirs éxécutable dont un de type activeX).
Marsh Posté le 31-03-2003 à 10:43:19
Tu les enregistre avec quoi tes ActiveX ?
Tu peux tj essayer de faire une install avec Innosetup, il me semble que lui il enregistre convenablement les ActiveX (s'il ne le fait pas va falloir que je résolve le problème aussi )
Marsh Posté le 31-03-2003 à 11:45:41
ben j'utilise rien, les activeXs, enfin l'exe-activeX s'enregistre de lui-meme à l'installation de l'application en se lançant. et à priori il s'enregistre dans la section 'CURRENT_USER' plutot que 'LOCAL_MACHINE' de la base de registre... Je pense qu'il doit enregistrer entre autre le chemin de l'exe-activeX avec son CLSID correspondant ainsi que toutes les interfaces contenues dans l'exe-activeXs (car yen a un paquet).
L'application se composent de plusieurs exes qui utilisent tous l'exe-activeXs pour faire des connections sur une BD. Ce qui est bizarre, c que lorsqu'un utilisateur non administrateur lance un executable de l'appli (autre que l'exe-activeX qui n'est jamais lancé directement par l'utilisateur): l'exe-active se lance bien également. Donc à priori l'enregistrement du CLSID avec le chemin de l'exe-activeXs se ferait bien dans 'LOCAL_MACHINE', par contre ce lancement de l'exe-activeXs provoque une erreur (opération non conforme) qui dans le journal des erreurs correspond à un message du style "le service DCOM machin truc bidule n'a pas pu s'enregistrer". Alors que cela fonctionne bien avec l'utilisateur administrateur. En fait j'ai l'impression que les utilisateurs non administrateur n'ont pas le droit d'enregistrer certains trucs indispensables à l'exécution de l'application mais je ne sais pas quoi (s'agit-il des objets internes à l'exe-activeX ? ...)
Marsh Posté le 31-03-2003 à 08:44:54
voici mon problème:
j'ai une application qui lors de sa première exécution va enregistrer divers controles activeXs dont elle a besoin pour fonctionner. Le problème c que ces activeXs s'enregistre dans la section 'CURRENT_USER' de la base de registre et non dans 'LOCAL_MACHINE'. Et donc lors de l'installation de l'application, celle-ci se lance automatiquement pour procéder à l'enregistrement des ActiveXs (plus particulièrement des GUIDs correspondants) mais seul l'utilisateur ayant installé l'application pourra s'en servir car les autres utilisateurs n'auront pas accès aux GUIDs et donc aux activeXs ( et donc l'application ne fonctionnera pas ).
Y-a-t-il un moyen d'enregistrer ces différents activeX manuellement (avec une commande du type "regsrv32.exe" ) afin qu'il figure dans la section 'LOCAL_MACHINE' ou est-ce un mécanisme propre aux objets DCOM auquel on ne peut rien faire ??
Merci d'avance .