Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cOSProcessX Class Reference

#include <cOSProcessX.h>

Inheritance diagram for GrayLib::cOSProcessX:
Gray::cOSProcess

Public Member Functions

 cOSProcessX ()
 
virtual ~cOSProcessX ()
 
HRESULT StartProcess (const FILECHAR_t *pszExeName, const FILECHAR_t *pszArgs=nullptr, TIMESYSD_t nTimeWait=cTimeSys::k_CLEAR, SHOWWINDOW_t nShowCmd=SW_SHOWNORMAL, const FILECHAR_t *pszCurrentDir=nullptr, const FILECHAR_t *pszFileOutPipe=nullptr, OUT APP_EXITCODE_t *pnExitCode=nullptr)
 
HRESULT StartProcessCmd (const FILECHAR_t *pszCmd, const FILECHAR_t *pszDocument, TIMESYSD_t nWait=cTimeSys::k_INF, SHOWWINDOW_t nShowCmd=SW_SHOWNORMAL)
 
HRESULT ShellExec (const FILECHAR_t *pszVerb, const FILECHAR_t *pszDocument, const FILECHAR_t *pszMimeType=nullptr, SHOWWINDOW_t nShowCmd=SW_SHOWNORMAL, const FILECHAR_t *pszParams=nullptr, const FILECHAR_t *pszDir=nullptr)
 
 UNITTEST2_PREDEF (cOSProcessX)
 
- Public Member Functions inherited from Gray::cOSProcess
 cOSProcess () noexcept
 
virtual ~cOSProcess ()
 
HRESULT CreateProcessX (const FILECHAR_t *pszExeName, const FILECHAR_t *pszArgs=nullptr, SHOWWINDOW_t nShowCmd=SW_SHOWNORMAL, const FILECHAR_t *pszCurrentDir=nullptr, cFile *pFileOutPipe=nullptr)
 
bool isValidProcess () const noexcept
 
PROCESSID_t get_ProcessId () const noexcept
 
virtual cStringF get_ProcessPath () const
 
cStringF get_ProcessName () const
 
HRESULT OpenProcessId (PROCESSID_t dwProcessID, DWORD dwDesiredAccess=0, bool bInheritHandle=false)
 
cStringF get_CommandLine () const
 
HRESULT WaitForProcessExit (TIMESYSD_t nTimeWait, APP_EXITCODE_t *pnExitCode=nullptr)
 
void AttachCurrentProcess () noexcept
 
HRESULT TerminateProcess (APP_EXITCODE_t uExitCode)
 
DWORD get_PriorityClass () const noexcept
 CPU priority level for scheduling. More...
 
bool put_PriorityClass (DWORD dwPriorityClass) noexcept
 

Static Public Member Functions

static HRESULT GRAYCALL EnumProcesses (OUT PROCESSID_t *pnProcessIDs, COUNT_t iQtyMax)
 
static HRESULT GRAYCALL FindProcessByName (const FILECHAR_t *pszName, OUT PROCESSID_t *pnProcessIDs, COUNT_t iInstQty)
 
static bool GRAYCALL FindCmdForMime (OUT FILECHAR_t *pszExeNameRet, StrLen_t iLenNameMax, const FILECHAR_t *pszMimeType)
 
- Static Public Member Functions inherited from Gray::cOSProcess
static bool __stdcall IsSystemPID (PROCESSID_t nProcessID) noexcept
 

Additional Inherited Members

- Protected Attributes inherited from Gray::cOSProcess
PROCESSID_t m_nPid
 Process ID, 0 = PROCESSID_BAD = un-init. More...
 

Detailed Description

A process in the system. May or may not be the current process. or one that i started. handle to some active process. Related to MIME_EXT_exe PROCESSID_t

Constructor & Destructor Documentation

◆ cOSProcessX()

GrayLib::cOSProcessX::cOSProcessX ( )

◆ ~cOSProcessX()

GrayLib::cOSProcessX::~cOSProcessX ( )
virtual

Member Function Documentation

◆ EnumProcesses()

HRESULT GRAYCALL GrayLib::cOSProcessX::EnumProcesses ( OUT PROCESSID_t *  pnProcessIDs,
COUNT_t  iQtyMax 
)
static

Get a list of all the process id's that i can see. All users.

Returns
how many actual processes did i count? pnProcessIDs[iQtyMax] = this list.

◆ FindCmdForMime()

bool GRAYCALL GrayLib::cOSProcessX::FindCmdForMime ( OUT FILECHAR_t pszExeNameRet,
StrLen_t  iLenNameMax,
const FILECHAR_t pszMimeType 
)
static

Get the process/app name for a given MIME class or file/document extension.

Note
pszMimeType might be an .EXT or MIME type. ASSUME pszExeNameRet = _MAX_PATH iLenNameMax = _MAX_PATH e.g. '"C:\Program Files\Internet Explorer\iexplore.exe" %1'

◆ FindProcessByName()

HRESULT GrayLib::cOSProcessX::FindProcessByName ( const FILECHAR_t pszName,
OUT PROCESSID_t *  pnProcessIDs,
COUNT_t  iInstQty 
)
static

Find a process by name OR full path name. iInstQtyMax = if there are multiple instances get this many.

Returns
Qty of processes found with this name 0 = can't find it.

◆ ShellExec()

HRESULT GrayLib::cOSProcessX::ShellExec ( const FILECHAR_t pszVerb,
const FILECHAR_t pszDocument,
const FILECHAR_t pszMimeType = nullptr,
SHOWWINDOW_t  nShowCmd = SW_SHOWNORMAL,
const FILECHAR_t pszParams = nullptr,
const FILECHAR_t pszDir = nullptr 
)

Open a document with some registered external application type handler. For linux this is a MIME type ?

  • pszDocument = _FN("http://www.yoururl.com"), or _FN("mailto:you@hotmail.com"), or _FN("mypicture.jpg") pszMimeType = _GT(".htm") nShowCmd = SW_SHOW, SW_SHOWNORMAL=1 e.g. "mailto:?subject=Request help with issues&body=Paste Test Results Here..."
    Returns
    = <0 = ERROR

◆ StartProcess()

HRESULT GrayLib::cOSProcessX::StartProcess ( const FILECHAR_t pszExeName,
const FILECHAR_t pszArgs = nullptr,
TIMESYSD_t  nTimeWait = cTimeSys::k_CLEAR,
SHOWWINDOW_t  nShowCmd = SW_SHOWNORMAL,
const FILECHAR_t pszCurrentDir = nullptr,
const FILECHAR_t pszFileOutPipe = nullptr,
OUT APP_EXITCODE_t *  pnExitCode = nullptr 
)

Start up a child process. replaces old WinExec()

  • pszArgs = can be nullptr nTimeWait = wait for it to complete. 0=don't wait. INFINITE = wait forever. milliseconds nShowCmd = SW_SHOW, SW_SHOWNORMAL
    Returns
    S_OK = 0 = good HRESULT_WIN32_C(ERROR_CANCELLED) = 5 or 1223 ?? pnExitCode = Exit code from process. APP_EXITCODE_t

◆ StartProcessCmd()

HRESULT GrayLib::cOSProcessX::StartProcessCmd ( const FILECHAR_t pszCmd,
const FILECHAR_t pszDocument,
TIMESYSD_t  nWait = cTimeSys::k_INF,
SHOWWINDOW_t  nShowCmd = SW_SHOWNORMAL 
)

Launch some process. Use a pszCmd that might have "%1" in it to add more args to open the document. E.g. pszCmd = '"%programFiles%\Windows Mail\Wab.exe" /CreateContact "%1"'

◆ UNITTEST2_PREDEF()

GrayLib::cOSProcessX::UNITTEST2_PREDEF ( cOSProcessX  )

The documentation for this class was generated from the following files: