2009-09-10 8 views
1

System.Diagnostics.Process.Startメソッドで奇妙な問題があるようです。 3.5 SP1 .NET Frameworkを使用しているC#デスクトップアプリケーションがあります。ユーザは、そのタグに格納されたフォルダパスを関数に渡す文字列として渡すラベルをクリックします。 Windowsエクスプローラが正しいフォルダで起動します。このツールをCitrixにインストールして公開アプリケーションを実行すると、エクスプローラは起動しますが、.NET例外メッセージも表示されます。「指定されたファイルが見つかりません」それだけでOK、それを立ち上げていますし、サーバーにローカルにログオンしたときにコードがエラーなしで動作するようSystem.Diagnostics.Process.Start問題

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) 

ファイルパスが存在している、公開アプリケーションとして、それだけでエラーが、私のコードは

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()); 
} 

を下回っています私はこのページを見つけましたhttp://forums.citrix.com/thread.jspa?messageID=1382638しかし私たちはサーバーにIISを持っていません。

いずれかを助けてもらえますか?

おかげで、 ロブ

+0

あなたは、ユーザーがWebページに行くとクリックをインストールするようにあなたがウェブの展開を行ってきたわけですか? – GenericTypeTea

+0

これは、Citrixが公開アプリケーションとして公開しているデスクトップアプリケーションではありません。デスクトップアプリケーションには、さまざまなフォルダの場所でWindowsエクスプローラを起動するリンクがあります。 – rob

+0

これらのフォルダはネットワークドライブ上にあります。完全なアドレス(例えば、ドメイン名など)は、開始機能に渡すために使用される。 Citrix Serverはフォルダ領域にアクセスできます。 Windowsエクスプローラがこの機能から正しいフォルダに起動することを確認するだけです。 Windowsエクスプローラが起動すると、例外メッセージが表示されます。 – rob

答えて

3

代わりにフォルダ名を持つプロセスを開始しようとしているのは、プロセス「explorer.exeの」を起動し、コマンドライン引数としてフォルダの名前を渡します。あなたはここにexplorer.exeのが受け付けるコマンドライン引数のリストを見つけることができます。

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

+0

これはうまくいった - ありがとう! – rob