2011-06-10 2 views
4

J'essaie d'exécuter explorer.exe pour ouvrir un dossier et j'utilise System.Diagnostics.Process pour le faire.Process.Start() en C# ne fonctionne pas pour les utilisateurs non-administrateurs

Cela fonctionne très bien si l'application est exécutée par un utilisateur qui a des privilèges d'administrateur, mais échoue si l'utilisateur n'est pas un administrateur.

J'ai essayé: - en l'exécutant en fournissant un ProcessStartInfo. - Récupération du processus explorer.exe à partir de la machine locale et exécution à l'aide de celle-ci. - L'exécuter sur IExplore.exe.

Rien de ce qui précède a fonctionné pour les utilisateurs non-administrateurs. ProcessStartInfo vous invite à entrer les informations d'identification de l'administrateur, mais ce n'est pas souhaitable parce que beaucoup d'utilisateurs ne sont pas administrateurs.

Je sais que je peux faire ce travail en utilisant des méthodes natives (je l'ai essayé), SHOpenFolderAndSelectItems, mais je n'ai pas vraiment veulent utiliser le code natif ..

+1

Postez le code que vous utilisez, dans le ProcessStartInfo ... –

+1

« ne fonctionne pas »/« échoue » - pourriez-vous élaborer? - Avez-vous un message d'erreur? Le processus démarre-t-il et se termine-t-il immédiatement? –

+0

var processStartInfo = new ProcessStartInfo { FileName = "explorer.exe", Arguments = "C: \\" }; Process.Start (processStartInfo); – George

Répondre

3

Il pourrait être intéressant de jeter un oeil à ce Process.Start Permissions Problem

+0

Merci, mais ce type exécutait 'cmd.exe' dans un répertoire où le processus n'a pas avoir des autorisations pour écrire un fichier journal. Ce que je recherche, est un moyen d'ouvrir l'Explorateur Windows même si l'utilisateur n'est pas un administrateur. – George

+1

avez-vous essayé de placer ProcessStartInfo.WorkingDirectory dans le répertoire temporaire? – Winston

+0

Je viens de faire .. Je reçois toujours les mêmes résultats – George

Questions connexes