13 #pragma managed( push, off ) 68 if (
nullptr == pszPath ) {
79 wchar_t szBuffer[ MAX_PATH ];
80 ::wcscpy_s( szBuffer, pszPath );
83 if (
nullptr != pszArgument ) {
85 ::wcscat_s( szBuffer, L
" \"" );
86 ::wcscat_s( szBuffer, pszArgument );
87 ::wcscat_s( szBuffer, L
"\"" );
91 STARTUPINFOW sStartupInfo = {};
92 PROCESS_INFORMATION sProcessInfo = {};
93 if ( 0 == ::CreateProcessW(
nullptr, szBuffer,
nullptr,
nullptr,
false, CREATE_NEW_CONSOLE,
nullptr,
nullptr, &sStartupInfo, &sProcessInfo ) ) {
125 m_hObject = ::OpenProcess( dwAccess,
false, dwProcessId );
149 if ( 0 == ::TerminateProcess(
m_hObject, dwExitCode ) ) {
170 if ( 0 == ::GetExitCodeProcess(
m_hObject, &dwExitCode ) ) {
184 #pragma managed( pop ) virtual void Close() noexcept
クローズ関数
virtual void Close() noexcept override
クローズ関数
virtual DWORD GetExitCode() const noexcept
終了コード取得関数
virtual bool Terminate(DWORD dwExitCode=0) noexcept
強制終了関数
virtual ~CProcess() noexcept
デストラクタ
virtual bool Open(DWORD dwProcessId, DWORD dwAccess=SYNCHRONIZE) noexcept
オープン関数
virtual bool Release() noexcept override
リリース関数
HANDLE m_hObject
オブジェクトハンドル
DWORD m_dwProcessId
プロセスID
CProcess() noexcept
コンストラクタ
virtual bool Create(wchar_t const *pszPath, wchar_t const *pszArgument=nullptr) noexcept
作成関数