MFC-创建进程

VS2012

创建进程

  • WinExec
  • ShellExecute、ShellExecuteEx
  • CreateProcess

void CDemoDlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码

    //创建一个新的进程,打开计算器
    WinExec("calc.exe", SW_SHOW);
}
void CDemoDlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码

    //创建一个新的进程,打开记事本
    ShellExecute(NULL, TEXT("open"), TEXT("test.txt"), NULL, NULL, SW_SHOW);
}
void CDemoDlg::OnBnClickedButton3()
{
    // TODO: 在此添加控件通知处理程序代码

    //创建一个新的进程,打开记事本
    SHELLEXECUTEINFO Info;
    memset(&Info, 0, sizeof(Info));
    Info.cbSize = sizeof(Info);
    Info.lpVerb = TEXT("open");
    Info.lpFile = TEXT("test.txt");
    Info.lpParameters = NULL;
    Info.fMask = SEE_MASK_NOCLOSEPROCESS;
    Info.nShow = SW_SHOWDEFAULT;
    ShellExecuteEx(&Info);
}
void CDemoDlg::OnBnClickedButton4()
{
    // TODO: 在此添加控件通知处理程序代码

    //创建一个新的进程,打开一个计算器
    PROCESS_INFORMATION pi;//进程信息结构
    STARTUPINFO si;//启动信息结构
    memset(&si, 0, sizeof(si));
    si.cb = sizeof(si);
    si.wShowWindow = SW_SHOW;
    si.dwFlags = STARTF_USESHOWWINDOW;

    ::CreateProcess(TEXT("C://windows//system32//calc.exe"),
        NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);
}

Caesar卢尚宇

2021年1月4日

原文地址:https://www.cnblogs.com/nxopen2018/p/14233153.html