C#啓動一個外部程序(2)

 

調用Win32 API。
1.
using System.Runtime.InteropServices;
2.
[DllImport(
"shell32.dll")]
        
public static extern int ShellExecute(IntPtr hwnd,StringBuilder lpszOp,StringBuilder lpszFile,
                                                    StringBuilder lpszParams,StringBuilder lpszDir,
int FsShowCmd);
3.調用,打開記事本:
int a = ShellExecute(IntPtr.Zero,new StringBuilder("Open"),new StringBuilder("notepad"),
                            new
 StringBuilder(""),new StringBuilder(@"C:"), 1);
            System.Windows.Forms.MessageBox.Show(a.ToString());
4.打開一個網頁:
ShellExecute(IntPtr.Zero,
new StringBuilder("Open"),new StringBuilder("http://yao.cnblogs.com/"),
                                new
 StringBuilder(""),new StringBuilder(""), 1);

ShellExecute函數原型及參數含義如下:

  function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
                                                        Directory: PChar; ShowCmd: Integer): HINST; stdcall;

  ●hWnd:用於指定父窗口句柄。當函數調用過程出現錯誤時,它將作爲Windows消息窗口的父窗口。例如,可以將其設置爲應用程序主窗口句柄,即 Application.Handle,也可以將其設置爲桌面窗口句柄(用GetDesktopWindow函數獲得)。

   ●Operation:用於指定要進行的操作。其中“open”操作表示執行由FileName參數指定的程序,或打開由FileName參數指定的文件或文件夾;“print”操作表示打印由FileName參數指定的文件;“explore”操作表示瀏覽由FileName參數指定的文件夾。當參數設爲nil時,表示執行默認操作“open”。

  ●FileName:用於指定要打開的文件名、要執行的程序文件名或要瀏覽的文件夾名。

  ●Parameters:若FileName參數是一個可執行程序,則此參數指定命令行參數,否則此參數應爲nil或PChar(
0)。

  ●Directory:用於指定默認目錄。

  ●ShowCmd:若FileName參數是一個可執行程序,則此參數指定程序窗口的初始顯示方式,否則此參數應設置爲0。此參數更詳細說明見:C#啓動一個外部程序


  若ShellExecute函數調用成功,則返回值爲被執行程序的實例句柄。若返回值小於32,則表示出現錯誤。
調用Win32 API。
1.
using System.Runtime.InteropServices;
2.
//
        
//#define SW_HIDE             0 //隱藏窗口,活動狀態給令一個窗口
        
//#define SW_SHOWNORMAL       1 //用原來的大小和位置顯示一個窗口,同時令其進入活動狀態
        
//#define SW_NORMAL           1
        
//#define SW_SHOWMINIMIZED    2
        
//#define SW_SHOWMAXIMIZED    3
        
//#define SW_MAXIMIZE         3
        
//#define SW_SHOWNOACTIVATE   4 //用最近的大小和位置顯示一個窗口,同時不改變活動窗口
        
//#define SW_SHOW             5 //用當前的大小和位置顯示一個窗口,同時令其進入活動狀態
        
//#define SW_MINIMIZE         6 //最小化窗口,活動狀態給令一個窗口
        
//#define SW_SHOWMINNOACTIVE  7 //最小化一個窗口,同時不改變活動窗口
        
//#define SW_SHOWNA           8 //用當前的大小和位置顯示一個窗口,不改變活動窗口
        
//#define SW_RESTORE          9 //與 SW_SHOWNORMAL  1 相同
        
//#define SW_SHOWDEFAULT      10
        
//#define SW_FORCEMINIMIZE    11
        
//#define SW_MAX              11
        [DllImport("kernel32.dll")]
        
public static extern int WinExec(string exeName, int operType);
3.
WinExec(
@"C:WINDOWSsystem32cmd.exe",5);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章