Je travaille actuellement sur un projet qui interagit avec un objet COM. Dans mon code, j'appelle ce qui suit:Autorisations utilisateur et objets COM
CoInitialize(NULL); //Initialize COM system
HRESULT hr = spSSCProt.CreateInstance(("SSCProt.SSCprotector"));
Cela devrait me procurer l'objet dont j'ai besoin. Si cela échoue, c'est probablement parce que le serveur COM n'a pas l'objet COM enregistré en utilisant regsvr32
. Tout va bien et bien, je le code suivant pour gérer que:
/if its not, lets try to register it ourselves...create the command
CHAR cmdBuf[BUFSIZE];
GetCurrentDirectory(BUFSIZE,cmdBuf);
string cmd("regsvr32 -s \"");
cmd += cmdBuf;
cmd += "\\stixDlls\\SSCProt.dll\"";
//attempt to register it
system(cmd.c_str());
Le problème se pose si l'utilisateur n'est pas un administrateur. Ils ne seront pas en mesure d'exécuter la section de code les registres du serveur COM. La plupart de mes utilisateurs ne seront probablement pas des administrateurs.
Toutes les idées sur la façon dont je peux enregistrer le serveur com si elles ne sont pas un administrateur.
Merci