2009-09-10 11 views
1

Je semble avoir un problème étrange avec la méthode System.Diagnostics.Process.Start. J'ai une application C# Desktop utilisant 3.5 SP1 .NET Framework. Un utilisateur clique sur une étiquette qui passe un chemin de dossier stocké dans son étiquette comme une chaîne à la fonction. L'explorateur Windows démarre avec le bon dossier. Lorsque cet outil est installé sur Citrix et qu'il est exécuté à l'aide d'une application publiée, l'Explorateur Windows est toujours lancé mais un message d'exception .NET est également affiché "Le système ne trouve pas le fichier spécifié".System.Diagnostics.Process.Start Issue

System.ComponentModel.Win32Exception: The system cannot find the file specified 
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 
at System.Diagnostics.Process.Start() 
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) 
at System.Diagnostics.Process.Start(String fileName) 

Le chemin du fichier existe car il est juste a lancé ok et le code fonctionne sans erreur lorsque vous êtes connecté localement sur le serveur, il seulement des erreurs comme une application publiée, mon code est ci-dessous

Label label = (Label)sender; 
if (label.ForeColor == Color.Blue) { 
    if (System.IO.Directory.Exists(label.Tag.ToString()) == false) 
    { 
     MessageBox.Show("The specified folder does not exist:" + 
      Environment.NewLine + Environment.NewLine + label.Tag.ToString(), "", 
      MessageBoxButtons.OK, MessageBoxIcon.Information); 
     return; 
    } 
    System.Diagnostics.Process.Start(label.Tag.ToString()); 
} 

J'ai trouvé cette page http://forums.citrix.com/thread.jspa?messageID=1382638 mais nous n'avons pas IIS sur le serveur de toute façon.

Quelqu'un peut-il aider?

Merci, Rob

+0

Voulez-vous dire que vous avez fait un déploiement Web afin que l'utilisateur accède à une page Web et les clics installer? – GenericTypeTea

+0

Non Il s'agit d'une application de bureau qui est publiée par Citrix en tant qu'application publiée. L'application de bureau contient des liens qui lancent l'Explorateur Windows à différents emplacements de dossiers – rob

+0

Ces dossiers se trouvent sur un lecteur réseau. L'adresse complète (par exemple, nom de domaine, etc.) est utilisée pour passer à la fonction Démarrer. Le serveur Citrix a accès à la zone de dossier. Juste pour confirmer que Windows Explorer démarre à partir de cette fonction vers le bon dossier. Une fois l'explorateur Windows lancé, le message d'exception apparaît. – rob

Répondre

3

Au lieu d'essayer de lancer un processus avec le nom du dossier, démarrer le processus « explorer.exe » et passer le nom du dossier comme argument de ligne de commande. Vous pouvez trouver une liste d'arguments de ligne de commande acceptée par explorer.exe ici:

http://support.microsoft.com/kb/314853

+0

Super cela a fonctionné - merci! – rob