c# 路徑空格---ProcessStartInfo參數問題


今天在整合程序的時候,要從一個程序轉到另一個程序 當然要使用: 
  ProcessStartInfo startInfo = new ProcessStartInfo("\\Program Files\\IE\\IE.exe", s); 
                     Process.Start(startInfo); 
不過對於wm來說 不支持Process.Start(string)形式 真汗。 

這里的s 是指: 
string fullname = treeView1.SelectedNode.FullPath; 
//  string s = "\"" + @fullName + "\"";   
                     string s =  @fullName ; 
開始我還傻了吧唧的 吧@\"+ fuluuname 如此使用 結果錯誤的,@直接跟路徑名就好。系統自動辨認。 

傳遞好參數之后,那么怎么使用這個參數呢 : 
在被啟動程序中 
  [MTAThread] 
        static void Main(string[] args) 
        { 
        
            if(string.IsNullOrEmpty(string.Join(" ", args))) 
            { Application.Run(new Form1()); } 
            else 
            { 

                Application.Run(new Form1(string.Join(" ", args))); 
            } 
        } 
這里一定要注意 “ ”之間我是按了一個空格的,args會自動根據空格分成數組如 
D:\My Documents 他會分成 arg[0]=D:\My  arg[1]=Documents 
就因為這個問題我高了一下午,開始還以為自己重寫的ie有問題,加上調式wm不是很方便真的郁悶的要死。 空格沒有轉義字符   只有空字符null有轉義字符\0,有時候真的搞不懂網絡上那些標題命名為 空格轉義字符的人   竟然不具體標明 ,亂轉。 
在網絡中還搜索到了一片 
http://www.cnblogs.com/tuyile006/archive/2006/05/09/395193.html 
寫的不錯 不過沒有調試 其內容如下: 
這幾天做一個通訊程序,要通過“運行”開啟一個進程 
結果有時候可以正常調用,有時候就出現問題 
出問題代碼如下: 

   Process p=Process.Start(t_path.Text.ToString(),t_file.Text.ToString()); 
        Process.start()第一個參數是運行的程序名稱,后面是該程序參數 

如果這兩個路徑中不含空格的時候就可以正常運行, 
如果包含像"D:\Program Files\"或者"G:\Documents and Settings"之類的路徑程序就會出問題 
原因是在運行行里面 如果運行的程序只接收一個參數,參數里面夾一個空格就相當於回車 
也就是說,如果運行輸入:c:\aa.exe  d:\Program Files\tt.txt 
其實運行的是:c:\aa.exe  d:\Program 
這樣肯定會出錯了 

正確的寫法應該是: 
Process p=Process.Start("\""+t_path.Text.ToString()+"\"","\""+t_file.Text.ToString()+"\""); 

這種寫法絕對保險。 

調用的時候采用if (args.Length<=0) 
            { Application.Run(new Form1()); } 
            else 
            { 

                Application.Run(new Form1(args[0])); 
            } 
在從一個程序 引用另一個程序后 有時候 在單獨啟動第二個程序就會出現 
部署和/或注冊失敗,錯誤為: 0x8973190e。 寫入文件“%CSIDL_PROGRAM_FILES%\*\*.exe”時出錯。錯誤 0x80070020: 另一個程序正在使用此文件,進程無法訪問 
的錯誤 這時候應該 
其實這個東東的路徑是在我的文檔下的\*\*.exe路徑下,根本沒有任何程序在使用這個文件 
在mobile上選擇文件--清除保存的狀態,然后把mobile退出一下就好了 
就是模擬上的file 當然我的是英文版的 然后選擇里面的clear的一個類似選項就可以了 
你也可以參看 
http://www.wmisv.com.cn/bbs/dispbbs.asp?boardID=2&ID=5065


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM