Je dois écrire un raccourci dans le dossier de démarrage automatique pour tous les utilisateurs.obtenir par programme l'autorisation d'écriture de dossier spécial à l'aide du contrôle d'accès utilisateur dans Windows 7 et Vista
Le scénario est qu'un utilisateur avec des privilèges d'administrateur, à travers la boîte de dialogue de configuration de l'application, doit pouvoir définir l'application pour démarrer automatiquement pour tous les utilisateurs normaux lorsqu'ils se connectent.
je reçois le dossier de démarrage en utilisant
SHGetSpecialFolderPath(NULL, startFolderPath, CSIDL_COMMON_STARTUP, FALSE)
mais je ne dispose pas de droits d'écriture sur ce dossier, même lorsque l'utilisateur connecté fait partie du groupe du Adminisrator.
Je suppose que j'ai besoin d'appeler une fonction API liée au contrôle de compte d'utilisateur (UAC) pour demander la permission à l'utilisateur connecté d'élever le privilège actuel.
Cela devrait fonctionner sur Windows XP trop
Merci, j'ai confondu UAC avec le contrôle d'accès utilisateur. Je vais le corriger en tant que contrôle de compte d'utilisateur dans ma question initiale. – sergiom
Je ne veux pas que mon application soit exécutée en tant qu'administrateur. Je veux juste élever les privilèges seulement pour le peu de temps nécessaire pour créer le raccourci. Je veux afficher la fenêtre UAC pour demander à l'utilisateur la permission de modifier les paramètres protégés, comme le font les programmes d'installation. – sergiom
C'est ce que je dis aussi. La chose qui écrit dans le registre doit être élevée. Si vous voulez que cela se surélève et que le reste ne le soit pas, placez-le dans un exe séparé, mettez un manifeste dessus avec requireAdministrator, et utilisez ShellExecute pour le lancer. –