1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #pragma once
-
- #include "tchar.h"
- #include "windows.h"
- class CProcess
- {
- public:
-
- enum PipeType { pIn, pOut, pErr };
-
- enum Direction { Read, Write };
-
- enum ExecType { ASYNC, SYNC };
- CProcess();
- CProcess(ExecType execType);
- ~CProcess();
-
- BOOL Create(ExecType execType);
-
- BOOL Execute(LPCTSTR Command);
-
- BOOL IsOk() { return m_hPipes[pIn][Write] != INVALID_HANDLE_VALUE; }
-
- DWORD GetPid() { return m_dwProcessId; }
-
- size_t ReadLine(LPVOID lpBuffer, size_t len, char seq = '\n');
-
- size_t WriteSome(LPVOID lpBuffer, size_t len);
-
- void ClosePipes();
- protected:
- BOOL CreatePipes();
-
- private:
- DWORD m_dwProcessId;
- HANDLE m_hPipes[3][2];
- ExecType m_execType;
- };
|