System.Diagnostics.Process.Start()主要功能如下:
1.打開某個鏈接網址(彈窗)
2.定位打開某個文件目錄
3.打開系統特殊文件夾,如控制面板
Process調用方法
名稱 | 作用 |
Process.Start() | 啓動(或重用)此Process組件的StartInfo屬性指定的進程資源,並將其與該組件關聯 |
Process.Start(ProcessStartInfo) | 啓動由包含進程啓動信息(例如,要啓動的進程的文件名)的參數指定的進程資源,並將該資源與新的Process組件關聯 |
Process.Start(String) | 通過指定文檔或應用程序文件的名稱來啓動進程資源,並將資源與新的Process組件關聯 |
Process.Start(String,String) | 通過指定應用程序的名稱和一組命令行參數來啓動一個進程資源,並將該資源與新的Process組件相關聯 |
Process.Start(String,String,SecureString,String) | 通過指定應用程序的名稱,用戶名,密碼和域來啓動一個進程資源,並將該資源與新的Process組件關聯起來 |
Process.Start(String,String,String,SecureString) | 通過指定應用程序的名稱和一組命令行參數,用戶名,密碼和域來啓動一個進程資源,並將該資源與新的Process組件關聯起來 |
Process類主要提供本地和遠程進程的訪問,並提供對本地進程的啓動、停止等操作
Process屬性
屬性和方法 | 說明 |
MachineName | 屬性,獲取關聯進程正在其上運行的計算機的名稱 |
Id | 屬性,獲取關聯進程的唯一標識符 |
ExitTime | 屬性,獲取關聯進程退出時間 |
ProcessName | 屬性,獲取該進程的名稱 |
StartTime | 屬性,獲取該關聯進程的啓動時間 |
Threads | 屬性,獲取在管理進程中運行的一組線程 |
TotalProcessorTime | 屬性,獲取此進程的總的處理器時間 |
UserProcessorTime | 屬性,獲取此進程用戶處理器時間 |
Close() | 方法,釋放於此組件關聯的所有資源 |
CloseMainWindow() | 方法,通過想進城的主窗口發送關閉消息來關閉擁有用戶界面的進程 |
Dispose() | 方法,釋放由Component使用的所有資源 |
GetCurrentprocess | 方法,獲取新的Process組件,並將其與當前活動的進程關聯 |
GetProcesses() | 方法,爲本地計算機的每個進程資源創建一個新的Process組件 |
GetProcesses(String) | 方法,爲指定計算機上的每個進程資源創建一個新的Process組件 |
GetProcessByName(String) | 方法,創建新的process組件的數據,並將它們與本地計算機共享指定的進程名稱的所有進程資源關聯 |
Kill() | 方法,立即停止關聯的進程 |
Start() | 方法,啓動(或重用)此Process組件的StartInfo屬性指定的進程資源,並將其與該組件關聯 |
Start(String) | 方法,通過指定文檔或應用程序文件的名稱來啓動進程資源,並將資源與新的Process組件關聯 |
例子:
【這種方法會阻塞當前進程,直到運行的外部程序退出】
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = " -i " + srcName //視頻路徑
+ " -y -f image2 -ss " + cutTimeFrame //設置開始獲取幀的視頻時間
+ " -t 0.001 -s " + widthAndHeight //設置圖片的分辨率
+ " " + objName; //輸出的圖片文件名,路徑前必須有空格
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.FileName = ffmpeg;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process proc = new Process();
proc.StartInfo = startInfo;
proc.Start();
proc.WaitForExit();//不等待完成就不調用此方法
proc.Close();
proc.Dispose();