Click here to Skip to main content
14,031,601 members
Click here to Skip to main content

Tagged as


102 bookmarked
Posted 31 Aug 2003
Licenced CPOL

Remote Processes and Machine control of Windows NT based systems (2000/XP)

, 1 Apr 2012
Control certain aspects of machines sitting remotely, without having to install and trigger an application on the remote machine.

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxtempl.h>
#include <Tlhelp32.h>

struct SProcessInfo
    PROCESSENTRY32 peProcessEntry;
    SIZE_T         stMemUsage;

//typedef CTypedPtrList<CPtrList, PROCESSENTRY32*> CProcessInfoList;
typedef CTypedPtrList<CPtrList, SProcessInfo*> CProcessInfoList;

class CMachineInfo : public CObject  
	virtual ~CMachineInfo();

    void SetIP(CString strIP);
    CString GetIP();

    void SetPassword(CString strPwd);
    CString GetPassword();

    void SetLogon(CString m_strLogon);
    CString GetLogon();

    void SetRemoteAdminPipe(HANDLE handle);
    HANDLE GetRemoteAdminPipe();

    void SetRemoteAdminProcessInfoPipe(HANDLE handle);
    HANDLE GetRemoteAdminProcessInfoPipe();

    void SetRemoteAdminProcessExecutePipe(HANDLE handle);
    HANDLE GetRemoteAdminProcessExecutePipe();

    void SetRemoteAdminProcessKillPipe(HANDLE handle);
    HANDLE GetRemoteAdminProcessKillPipe();

    void SetRemoteAdminSysShutDownPipe(HANDLE handle);
    HANDLE GetRemoteAdminSysShutDownPipe();

    CMachineInfo& operator = (CMachineInfo& miMachineInfo); /* Assignment operator */
    BOOL operator == (CMachineInfo& miMachineInfo);

    void RefreshProcessList(CProcessInfoList& pilList);
    CProcessInfoList* GetProcessInfoList();

    void ClosePipeHandles();
    void SendEndThreadMessage();
    virtual void Serialize(CArchive& ar);

    CString m_strIP;
    CString m_strPwd;
    CString m_strLogon;
    CProcessInfoList m_pilProcessList;
    HANDLE m_hRemoteAdminPipe;
    HANDLE m_hRemoteAdminProcessInfoPipe;
    HANDLE m_hRemoteAdminProcessExecutePipe;
    HANDLE m_hRemoteAdminProcessKillPipe;
    HANDLE m_hRemoteAdminSysShutDownPipe;

inline void CMachineInfo::SetIP(CString strIP)
    m_strIP = strIP;

inline CString CMachineInfo::GetIP()
    return m_strIP;

inline void CMachineInfo::SetPassword(CString strPwd)
    m_strPwd = strPwd;

inline CString CMachineInfo::GetPassword()
    return m_strPwd;

inline void CMachineInfo::SetLogon(CString strLogon)
    m_strLogon = strLogon;

inline CString CMachineInfo::GetLogon()
    return m_strLogon;

inline void CMachineInfo::SetRemoteAdminPipe(HANDLE handle)
    m_hRemoteAdminPipe = handle;

inline HANDLE CMachineInfo::GetRemoteAdminPipe()
    return m_hRemoteAdminPipe;

inline void CMachineInfo::SetRemoteAdminProcessInfoPipe(HANDLE handle)
    m_hRemoteAdminProcessInfoPipe = handle;

inline HANDLE CMachineInfo::GetRemoteAdminProcessInfoPipe()
    return m_hRemoteAdminProcessInfoPipe;

inline void CMachineInfo::SetRemoteAdminProcessExecutePipe(HANDLE handle)
    m_hRemoteAdminProcessExecutePipe = handle;

inline HANDLE CMachineInfo::GetRemoteAdminProcessExecutePipe()
    return m_hRemoteAdminProcessExecutePipe;

inline void CMachineInfo::SetRemoteAdminProcessKillPipe(HANDLE handle)
    m_hRemoteAdminProcessKillPipe = handle;

inline HANDLE CMachineInfo::GetRemoteAdminProcessKillPipe()
    return m_hRemoteAdminProcessKillPipe;

inline void CMachineInfo::SetRemoteAdminSysShutDownPipe(HANDLE handle)
    m_hRemoteAdminSysShutDownPipe = handle;

inline HANDLE CMachineInfo::GetRemoteAdminSysShutDownPipe()
    return m_hRemoteAdminSysShutDownPipe;

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Prateek Kaul
Web Developer
India India
No Biography provided

You may also be interested in...

Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web02 | 2.8.190419.4 | Last Updated 1 Apr 2012
Article Copyright 2003 by Prateek Kaul
Everything else Copyright © CodeProject, 1999-2019
Layout: fixed | fluid