/************************************************************************/
/* WinExec启动文件或exe */
/************************************************************************/
/*
⑴ 函数原型:
UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow);
*/
/*
⑵ 参数:
lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。
uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。
⑶ 返回值:
若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一:
① 0:系统内存或资源已耗尽。
② ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。
③ ERROR_FILE_NOT_FOUND:指定的文件未找到。
④ ERROR_PATH_NOT_FOUND:指定的路径未找到。
大于 31 {调用成功}
等于 0 {内存不足}
ERROR_FILE_NOT_FOUND = 2; {文件名错误}
ERROR_PATH_NOT_FOUND = 3; {路径名错误}
ERROR_BAD_FORMAT = 11; {EXE 文件无效}
*/
/*
//uCmdShow 参数可选值:
SW_HIDE = 0; {隐藏, 并且任务栏也没有最小化图标}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
*/
LPCSTR lpStr("a.exe Win32 Debug Vc9");
LPCSTR lpStr("a.exe");
WinExec(lpStr,SW_MAXIMIZE);
/************************************************************************/
/* ShellExecute启动文件或exe、IE */
/************************************************************************/
ShellExecute(
HWND hWnd, // {指定父窗口句柄}
LPCTSTR lpOperation, // {指定动作, 譬如: open、print、edit、explore、find[2]}
LPCTSTR lpFile, // FileName,: PChar; {指定要打开的文件或程序}
LPCTSTR lpParameters = NULL, // Parameters,: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
LPCTSTR lpDirectory = NULL, //Directory,: ; {缺省目录}
UINT nShow = SW_SHOWNORMAL // peration, Integer {打开选项}
);
//调用计算器
ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL);
//调用记事本
ShellExecute(NULL,"open","NOTEPAD.EXE",NULL,NULL,SW_SHOWNORMAL);
//IE
ShellExecute(Handle, "open", "http://www.neu.edu.cn", NULL, NULL, SW_SHOWNORMAL);
ShellExecute(Handle, "open"," http://www.neu.edu.cn/default.htm", NULL, NULL ,SW_SHOWNORMAL);
//mailto
ShellExecute(Handle,"open", "mailto:", NULL, NULL, SW_SHOWNORMAL);
ShellExecute(Handle, "open"," mailto:who@mail.neu.edu.cn", NULL, NULL, SW_SHOWNORMAL);
//必须在每行文本之间加入换行转义字符%0a。
ShellExecute(Handle, "open", " mailto:who@mail.neu.edu.cn?subject=Hello&Body=This is a test %0a ceshi ",NULL, NULL, SW_SHOWNORMAL);
实例
#include <stdio.h>
#include <Windows.h>
void main()
{
ShellExecute(NULL,L"open",L"calc.exe",NULL,NULL,SW_SHOWNORMAL);
}
#include <Windows.h>
void main()
{
LPCSTR lpStr("calc.exe");
WinExec(lpStr,SW_MAXIMIZE);
}