https://www.cnblogs.com/fancing/p/6477918.html
#include <windows.h> #include <tchar.h> #include <stdio.h> int main(int argc, char* argv[]) { TCHAR szCommandLine[] = TEXT("NOTEPAD");//或者WCHAR //LPWSTR szCommandLine = TEXT("NOTEPAD");//錯誤 //STARTUPINFO si = { sizeof(si) }; STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成員有效 si.wShowWindow = TRUE; // 此成員設為TRUE的話則顯示新建進程的主窗口, // 為FALSE的話則不顯示 BOOL bRet = ::CreateProcess ( NULL, // 不在此指定可執行文件的文件名 szCommandLine, // 命令行參數 NULL, // 默認進程安全性 NULL, // 默認線程安全性 FALSE, // 指定當前進程內的句柄不可以被子進程繼承 CREATE_NEW_CONSOLE, // 為新進程創建一個新的控制台窗口 NULL, // 使用本進程的環境變量 NULL, // 使用本進程的驅動器和目錄 &si, &pi); if(bRet) { // 既然我們不使用兩個句柄,最好是立刻將它們關閉 ::CloseHandle (pi.hThread); ::CloseHandle (pi.hProcess); } return 0; }