Changer l'utilisateur en cours de code

KGO44 Messages postés 2 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 28 décembre 2006 - 28 déc. 2006 à 12:13
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 28 déc. 2006 à 16:07
Bonjour,

J'ai un code sur une machine loguer avec un utilisateur A.
Mon code doit être lancé avec un RunAs.exe avec en paramètre un utilisateur B (qui a plus de droits que l'utilisateur A)

Au cours de l'execution je dois effectuer un
Set Session = CreateObject("NOTES.NOTESSESSION")

pour envoyer un mail avec Lotus Note.

Mais j'ai une erreur = "Un composant ActiveX ne peut pas créer d'objet"

Or si j'exécute mon code avec l'utilisateur A (et en lui rajoutant tous les droits), mon code fonctionne.

Evidemment, je ne peux pas donner tous les droits à l'utilisateur A (ce serait trop facile!!!)

D'où ma question : comment changer d'utilisateur en cours de code ? (et me mettre en Utilisateur A le temps d'effectuer mon CreateObject et de revenir ensuite à l'utilisateur B pour la suite)
merci
Kat

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 déc. 2006 à 16:07
Salut
Cette erreur apparait lorsque tu tentes d'utiliser un composant qui n'est pas enregistré dans la base de registres (classique).
Il faut donc avoir installé le programme compilé grace à un installeur, genre l'empaqueteur fourni avec VB6 ou InnoSetup. Cette procédure d'installation s'occupe d'enregistrer les composants déclarés dans le projet.

Pour toi, il s'agit d'utiliser un logiciel ou ses composants (LotusNotes) alors qu'il n'est pas accessible par le compte utilisateur A.

A mon avis (et ce n'est que mon avis), la méthode RunAs ne s'adresse qu'aux exécutables et pas à leurs composants.
En VB6, je n'ai jamais vu de code permettant de la faire directement car il faudrait créer un nouveau thread en utilisant le username et password, et s'adresser à ce thread pour exécuter le programme = Assez complexe car le langage ne s'y prête pas facilement (plus simple en C semble t-il).
En général, les quelques sources que j'ai rencontré transitent par des commandes DOS.
Fait des recherches avec 'RunAs'
Ensuite, il te suffira d'écrire un deuxième programme en VB, installé sur le compte B, qui s'occupera d'envoyer ton mail en lui fournissant les paramètres et que tu pourras lancer avec le RunAs depuis le compte A.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on
0
Rejoignez-nous