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
轉載于:https://www.cnblogs.com/gc2013/p/3843093.html
總結
以上是生活随笔為你收集整理的c# 路径空格---ProcessStartInfo参数问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java+oracle+ojdbc14_
- 下一篇: 大漠插件