Je tente d'utiliser Redmon http://www.winimage.com/misc/redmon/ pour envoyer des tâches d'impression vers une application C# personnalisée. Redmon "s'exécute" (en fait le spouleur d'impression) en tant que SYSTEM mais a une option à exécuter en tant qu'utilisateur pour permettre à votre application de s'exécuter sous l'utilisateur qui a imprimé le travail. Le problème est qu'il ne semble pas charger l'environnement de l'utilisateur. Ainsi, appeler des fonctions comme Path.GetTempPath() pointe vers \ windows \ temp au lieu de celui de l'utilisateur. Également lors de la tentative d'exécution d'Outlook 2007+ via des appels MAPI (pour ajouter des pièces jointes), il signale des erreurs de formulaire en raison, je pense, de l'emplacement du dossier temporaire.Redmon's Run As User ne charge pas les variables d'environnement de l'utilisateur
Existe-t-il un moyen de "recharger" un profil ou d'au moins obtenir des variables d'environnement dans l'application Impersonated? Les seules idées que j'ai eues jusqu'ici sont de reconstruire les vars directement à partir du registre, mais je veux éviter cela puisque c'est un bidouillage (en évitant les détails d'implémentation et tout ça). Ou créer un programme de remplacement que Redmon appelle, puis exécuter correctement en tant qu'utilisateur avec le profil complet de l'application personnalisée.
D'autres articles ou astuces?
code mis à jour à utiliser ToInt64 au lieu de ToInt32 pour les systèmes 64 bits (avec plus de 4gig ram?). http://stackoverflow.com/a/1866268 signale qu'il utiliserait simplement plus de frais généraux sur les systèmes 32 bits mais fonctionnerait. – Halfdone