今天在整合程序的時候,要從一個程序轉到另一個程序 當然要使用: ProcessStartInfo startInfo = new ProcessStartInfo("http://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.49028c.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
新聞熱點
疑難解答