程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c# 路徑空格---ProcessStartInfo參數問題,

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

編輯:C#入門知識

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


C語言裡面,這個符號(->)是什,怎使用?

這是結構體指針中的一個符號,給你寫個程序解釋一下吧,例如:
#include<stdio.h>
struct STU //定義一個結構體
{
int num;
}stu;
int main()
{
struct STU *p; //定義一個結構體指針
p=stu; //p指向stu這個結構體變量
stu.num=100; //給結構體成員num附個初值
printf("%d",p->num); //輸出stu中的num的值
return;
}
看到了吧,->的作法就是在引用結構體中的變量!!
形式如:p->結構體成員(如p->num)
他的作用相當於stu.num或(*p).num
不知道這樣解釋你明不明白、、、、、不懂了call我,O(∩_∩)O~
望采納。
 

C語言裡面,這個符號(->)是什,怎使用?

這是結構體指針中的一個符號,給你寫個程序解釋一下吧,例如:
#include<stdio.h>
struct STU //定義一個結構體
{
int num;
}stu;
int main()
{
struct STU *p; //定義一個結構體指針
p=stu; //p指向stu這個結構體變量
stu.num=100; //給結構體成員num附個初值
printf("%d",p->num); //輸出stu中的num的值
return;
}
看到了吧,->的作法就是在引用結構體中的變量!!
形式如:p->結構體成員(如p->num)
他的作用相當於stu.num或(*p).num
不知道這樣解釋你明不明白、、、、、不懂了call我,O(∩_∩)O~
望采納。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved