📄 hsyspublic.h
字号:
// HSysPublic.h: interface for the CHSysPublic class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_HSYSPUBLIC_H__8D633A87_418A_47B4_8B90_6AFEE4A6BD72__INCLUDED_)
#define AFX_HSYSPUBLIC_H__8D633A87_418A_47B4_8B90_6AFEE4A6BD72__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Tlhelp32.h>
#include <HGeneric.h>
#define UM_APP_CLOSE WM_USER+901 //关闭程序的自定义消息
//(本来可用WM_CLOSE,但有些程序收到WM_CLOSE时,
//只是最小化到系统托盘,不退出,故添加这个消息)
class AFX_EXT_CLASS CHProcessInfo
{
public:
CHProcessInfo(){
dwSize=0;
cntUsage=0;
th32ProcessID=0;
th32DefaultHeapID=0;
th32ModuleID=0;
cntThreads=0;
th32ParentProcessID=0;
pcPriClassBase=0;
dwFlags=0;
szExeFile="";
szExeFilePathName="";
};
CHProcessInfo(PROCESSENTRY32 ppe){
dwSize=ppe.dwSize;
cntUsage=ppe.cntUsage;
th32ProcessID=ppe.th32ProcessID;
th32DefaultHeapID=ppe.th32DefaultHeapID;
th32ModuleID=ppe.th32ModuleID;
cntThreads=ppe.cntThreads;
th32ParentProcessID=ppe.th32ParentProcessID;
pcPriClassBase=ppe.pcPriClassBase;
dwFlags=ppe.dwFlags;
szExeFile=ppe.szExeFile;
szExeFilePathName="";
};
virtual ~CHProcessInfo(){};
CHProcessInfo& operator =(CHProcessInfo &other){
dwSize=other.dwSize;
cntUsage=other.cntUsage;
th32ProcessID=other.th32ProcessID;
th32DefaultHeapID=other.th32DefaultHeapID;
th32ModuleID=other.th32ModuleID;
cntThreads=other.cntThreads;
th32ParentProcessID=other.th32ParentProcessID;
pcPriClassBase=other.pcPriClassBase;
dwFlags=other.dwFlags;
szExeFile=other.szExeFile;
szExeFilePathName=other.szExeFilePathName;
return *this;
}
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID;
ULONG th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads;
DWORD th32ParentProcessID;
LONG pcPriClassBase;
DWORD dwFlags;
CString szExeFile;
CString szExeFilePathName;
};
#include <afxtempl.h>
typedef AFX_EXT_CLASS CArray<CHProcessInfo,CHProcessInfo&> CHProcessInfoArray;
class AFX_EXT_CLASS CHSysPublic : public CHGeneric
{
public:
CHSysPublic();
virtual ~CHSysPublic();
public:
static CString HGetLstErr(DWORD dwErr=-1);
static void SetWindowTopMost(CWnd *pWnd);
static int AnalysisCmd(int argc,char **argv,CStringArray &saCmd);
static BOOL KillProcess(CString strProcess,int nRetCode=0);
static BOOL KillProcess(DWORD dwProcessID,int nRetCode=0);
static int RestartApp();
static CString WC2MC( PWSTR wbuf,int nLenWC=255);
static int MC2WC( unsigned char *mbuf, int nLenMC, WCHAR *wbuf);
static BOOL EnablePrivilege(CString strPrivilege,BOOL bEnable=TRUE);
static void BringWindowToFront(CString strWindowTitle);
static void BringWindowToFront(CWnd *pWnd);
static BOOL RestartComputer();//关机并切断电源
static BOOL ShutOffComputer();//关机并切断电源
static BOOL SleepComputer();//待机
static void DisableTaskMgr(BOOL bDisable=TRUE);//禁用操作系统的任务管理器
static BOOL IsTaskMgrDisabled();//判断操作系统的任务管理器是否已被禁用
static BOOL DisableTaskBar(BOOL bDisable=TRUE);//禁用操作系统的任务栏
static BOOL HideTaskBar(BOOL bHide=TRUE);//隐藏操作系统的任务栏
static BOOL IsTaskBarDisabled();//判断操作系统的任务栏是否已被禁用
static CString PathNameShort2Long(CString strShortPathName);
static CString GetLocalIP(BOOL bFormat=0);
static int GetLocalIPList(CStringArray &saIP);
static int StoreProcessModules(HANDLE hProcess,CHProcessInfo &pi,
CString strFileSaveProcessList="");
static HANDLE GetProcHandle(CString strAppName);
static HANDLE GetProcHandleNT(CString strAppName);
static int EnumProcess(CHProcessInfoArray &saProcessInfo,
CString strFileSaveProcessList="");
static int EnumProcessNT(CHProcessInfoArray &saProcessInfo,
CString strFileSaveProcessList="");
static DWORD GetProcessID(CString strExeFileName);
static DWORD GetProcessID(CString strExeFileName,CHProcessInfoArray &saProcessInfo);
static void WaitForSpecialProcess(CString strProcessName);
static void ThreadWaitForSpecialProcess(LPVOID lp);
static CString GetExeFileName(DWORD dwProcessID,CHProcessInfoArray &saProcessInfo);
static CString GetWinPath();
static CString GetSysPath();
static CString GetCurPath();
static CString GetUserPath();
static HANDLE CreateThreadInRemoteProcess(DWORD RemoteProcessID,
CString strThradDllPathName);
static HANDLE CreateThreadInRemoteProcess(CString strRemoteProcessName,
CString strThradDllPathName);
};
#endif // !defined(AFX_HSYSPUBLIC_H__8D633A87_418A_47B4_8B90_6AFEE4A6BD72__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -