14 ZeroMemory (&
_pi,
sizeof (
_pi));
15 ZeroMemory (&
_si,
sizeof (
_si));
16 _si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
17 _si.wShowWindow = SW_HIDE;
23 ::CloseHandle (
_pi.hThread);
24 ::CloseHandle (
_pi.hProcess);
28 LPCTSTR lpctszApplicationName,
29 LPTSTR lptszCommandLine,
30 LPCTSTR lpctszCurrentDirectory)
34 _si.cb =
sizeof (STARTUPINFO);
35 _si.lpReserved = NULL;
37 _si.lpReserved2 = NULL;
44 ret = ::CreateProcess (
45 lpctszApplicationName,
52 lpctszCurrentDirectory,
65 return ::WaitForSingleObject (
_pi.hProcess, dwTime);
83 BOOL ret = ::GetExitCodeProcess (
_pi.hProcess, &dwRet);
85 return ret == TRUE ? dwRet : -1;
90 return ::TerminateProcess (
_pi.hProcess, 0);
94 DWORD dwX, DWORD dwY, DWORD dwWidth, DWORD dwHeight, WORD wShowWindow)
98 _si.dwXSize = dwWidth;
99 _si.dwYSize = dwHeight;
100 _si.dwFlags = STARTF_USEPOSITION;
101 _si.dwFlags |= STARTF_USESIZE;
102 _si.dwFlags |= STARTF_USESHOWWINDOW;
103 _si.wShowWindow = wShowWindow;
107 DWORD dwX, DWORD dwY, DWORD dwWidth, DWORD dwHeight, DWORD dwXChars,
112 _si.dwXSize = dwWidth;
113 _si.dwYSize = dwHeight;
114 _si.dwXCountChars = dwXChars;
115 _si.dwYCountChars = dwYChars;
116 _si.dwFlags = STARTF_USECOUNTCHARS;
117 _si.dwFlags |= STARTF_USESTDHANDLES;
118 _si.dwFlags |= STARTF_FORCEONFEEDBACK;
124 _si.lpTitle = lptszConsoleTitle;
プロセスに関するWindowsAPIを集約したクラス
HANDLE APIENTRY GetReadHandle() const
読み込み用ハンドルの取得
DWORD APIENTRY Peek(LPVOID lpvBuf, DWORD dwSize) const
メッセージの確認
HANDLE APIENTRY GetWriteHandle() const
書き込み用ハンドルの取得
DWORD APIENTRY Read(LPVOID lpvBuf, DWORD dwSize) const
メッセージの読み込み
BOOL APIENTRY Create()
パイプの作成
BOOL APIENTRY Write(LPVOID lpvBuf, DWORD dwSize) const
メッセージの書き込み
BOOL APIENTRY CreateAsUser()
BOOL APIENTRY CreateWithLogon()
BOOL APIENTRY Create(LPCTSTR lpctszApplicationName, LPTSTR lptszCommandLine, LPCTSTR lpctszCurrentDirectory=NULL)
プロセスの作成
HANDLE APIENTRY GetProcessHandle() const
プロセスハンドルの取得
VOID APIENTRY SetConsoleInfo(DWORD dwX, DWORD dwY, DWORD dwWidth, DWORD dwHeight, DWORD dwXChars, DWORD dwYChars)
起動するプロセスのコンソール位置を設定
DWORD APIENTRY Peek(LPVOID lpvBuf, DWORD dwSize) const
プロセス出力内容の読み込み
DWORD APIENTRY Write(LPVOID lpvBuf, DWORD dwSize) const
プロセス入力への書き込み
BOOL APIENTRY Terminate() const
プロセスの強制終了
APIENTRY ~Process()
デストラクタ
APIENTRY Process()
コンストラクタ
VOID APIENTRY SetTitle(LPTSTR lptszConsoleTitle)
コンソールタイトルの設定
BOOL APIENTRY SetPriority(Priority priority) const
優先度の設定
DWORD APIENTRY Read(LPVOID lpvBuf, DWORD dwSize) const
プロセス出力内容の読み込み
DWORD APIENTRY Wait(DWORD dwTime=INFINITE) const
プロセス終了の待機
VOID APIENTRY SetWindowInfo(DWORD dwX, DWORD dwY, DWORD dwWidth, DWORD dwHeight, WORD wShowWindow=SW_NORMAL)
起動するプロセスのウィンドウ位置を設定
DWORD APIENTRY GetExitCode() const
プロセス終了時の終了コード取得