转 http://hi.baidu.com/ouanan/item/56dc30904878e3b982d295f5
WinExec
c#声明
[DllImport("kernel32.dll")]
public static extern int WinExec(string exeName, int operType);
VB声明
Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
说明
运行指定的程序
返回值
Long,大于32表示成功,请参考FindExecutable函数
参数表
参数 类型及说明
lpCmdLine String,包含要执行的命令行
nCmdShow Long,定义了以怎样的形式启动程序的常数值。参考ShowWindow函数的nCmdShow参数
//#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
注解
请参考对CreateProcess函数的说明,了解在目录中查找指定文件的顺序
VC中如何使用
WINSHELLAPI void WINAPI WinExecErrorA(HWND hwnd, int error, LPCSTR lpstrFileName, LPCSTR lpstrTitle);
WINSHELLAPI void WINAPI WinExecErrorW(HWND hwnd, int error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle);
参数说明:
hwnd,窗口句柄,一般为NULL
error,出错信息
lpstrFileName 文件名
lpstrTitle 标题名
c#调用例子:
if (WinExec(@"F:\BaiduHi.exe", 1) > 32)//WinExec应该是一个中断方法,就是说要打了外部程序才运行下一行代码
{
//处理程序
}
MessageBox.Show("执行到这里咯~~");