还可以用ShellExecute,函数原型:
SHSTDAPI_(HINSTANCE) ShellExecuteA (HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);
其中hwnd指父窗口的句柄,可以设置为NULL
lpOperation指函数执行的指令,“open”是打开文件
IpFile指源文件路径
lpParameters指命令行参数,也可设置为NULL
lpDirectory是默认目录,也可为NULL
nShowCmd是指令,常用的指令有:
SW_HIDE 隐藏窗口
SW_SHOWNORMAL SW_NORMAL SW_SHOW SW_SHOWDEFAULT都差不多的 都是显示并让窗口进入活动状态
SW_MAXIMIZE 让窗口全屏
SW_MINIMIZE 让窗口最小化
例子:
#include<windows.h>
int main(){
ShellExecute(NULL,"open","C:\\Users\\Administrator\\Desktop\\a.exe",NULL,NULL,SW_SHOW);
}
如果想让文件以管理员身份运行,那可以用ShellExecuteEx
函数原型:SHSTDAPI_(WINBOOL) ShellExecuteEx (SHELLEXECUTEINFO *pExecInfo);
例子:
void OpenExe(const char cc[],UINT ui){
int i=0,x=0;
for(const char *c;*c!='\0';c++){
if((*c)=='\\') x=i;
i++;
}
char cc1[x+1];
for(i=0;i<x;i++){
cc1=cc;
}
SHELLEXECUTEINFO shExecInfo={0};
shExecInfo.cbSize=sizeof(SHELLEXECUTEINFO);
shExecInfo.fMask=SEE_MASK_NOCLOSEPROCESS;
shExecInfo.hwnd=NULL;
shExecInfo.lpVerb="open";
shExecInfo.lpFile=cc;
shExecInfo.lpParameters="";
shExecInfo.lpDirectory=cc1;
shExecInfo.nShow=ui;
shExecInfo.hInstApp=NULL;
ShellExecuteEx(&shExecInfo);
}
写入:
一、system函数格式:system(filename);
举例:
#include <Windows.h>//stdlib.h#include <iostream>using namespace std;int main(){ system("_mw.exe");}优点:简洁
缺点:打开后不能继续运行当前程序
二、SHELLEXECUTEINFO添加函数:
BOOL OpenExeFile(LPCSTR mode, LPCSTR filename){ SHELLEXECUTEINFO shell = { sizeof(shell) }; shell.fMask = SEE_MASK_FLAG_DDEWAIT; shell.lpVerb = mode; shell.lpFile = filename; shell.nShow = SW_SHOWNORMAL; BOOL ret = ShellExecuteEx(&shell); return ret;}调用(Unicode字符集):
OpenExFile(L"open", filename);//filename是const wchar_t*类型如果使用多字节字符集:
OpenExFile("open", filename);//filename是const char*类型