|
- #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;
- }
复制代码
|
|