2014-04-18 67 views
1

我目前正在開發中VS2012(.NET 4.0)一個C#的WinForms應用程序中打開服務器上的文件。該應用程序是有點像電子郵件客戶端和顯示信息列表。並且每條消息可以附加一個或一個文件。 文件附件存儲在不同的服務器,它只能使用另一個用戶帳戶(由登錄用戶和不)訪問上。你如何使用不同的用戶帳戶憑據

當在文件附件用戶雙擊我需要打開該文件,並在相關應用程序顯示出來。即記事本中的TXT文件,Word中的DOCX文件等。

我希望我可以將完整的文件名傳遞到System.Diagnostics.Process.Start方法中,並輸入正確的用戶名,密碼和域值,然後打開文件關聯應用程序 例如

SecureString password = new SecureString(); 
"MyPassword".ToCharArray().ToList().ForEach(password.AppendChar); 

System.Diagnostics.Process.Start(@"\\MyServer\MyFolder\MySubFolder\MyFile.docx", 
           "MyUsername", 
           password, 
           "MyDomain"); 

但拋出一個異常與消息: 指定的可執行文件是不是這個操作系統平臺的有效應用。

我還試圖建立一個ProcessStartInfo對象實例和FileName屬性"Explorer.exe"Arguments屬性設置爲@"\\MyServer\MyFolder\MySubFolder\MyFile.docx",並把它當作參數爲System.Diagnostics.Process.Start方法。但是這也行不通。不會引發異常,文件也不會顯示。

但是,如果您查看System.Diagnostics.Process.Start方法返回的對象,則會看到發生了InvalidOperationException

我的C#的問題是,我怎麼能打開並顯示一個文件(在它相關的應用程序),當文件被保存,只能使用不同的用戶憑據訪問的服務器上?

+0

它似乎喜歡這很難做到,因爲你不應該這樣做。 –

回答

0

我認爲這應該工作

步驟1中找到應用與擴展 步驟2.使用提到 System.Diagnostics.Process.Start(「應用程序從目前的機器相同的API註冊了在第1步中找到「, @」\ MyServer \ MyFolder \ MySubFolder \ MyFile.docx「, 」MyUsername「, password, 」MyDomain「);

查看如何找到寄存器應用延期以下鏈接

How to get recommended programs associated with file extension in C#

http://www.codeproject.com/Articles/17023/System-File-Association

相關問題