CUtilFunc.h
来源:互联网 发布:office软件验收 编辑:程序博客网 时间:2024/06/09 21:58
// UtilityFunc.h: interface for the CUtilityFunc class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_UTILFUNC_H__18154823_089F_4064_87D3_104F264FD76C__INCLUDED_)
#define AFX_UTILFUNC_H__18154823_089F_4064_87D3_104F264FD76C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define SAFE_DEL_ARRAY(x) if (x) {delete []x;x = NULL;}
#define SAFE_DEL_POINT(x) if (x) {delete x;x = NULL;}
#include <list>
#include <vector>
using namespace std;
struct FILE_VERSION
{
CHAR szVersion[MAX_PATH];
CHAR szDescription[MAX_PATH];
CHAR szCompany[MAX_PATH];
CHAR szProcName[MAX_PATH];
};
class AFX_EXT_CLASS CUtilFunc
{
public:
CUtilFunc();
~CUtilFunc();
public:
static BOOL GetHostInfo(char * outIP, char * outName);
//static int ExportDllSys(HMODULE hModule,UINT resID,LPCTSTR typeName,LPCTSTR dllName);
static int SetFileHidden(CString sFilePath);
static BOOL CheckExistFile(const char *sFile);
static int ExecuteExe(char *sCmdline);
static int ExecuteIEWin7(char *sCmdline);
static string ExecuteApp(char *sCmdline);
static BOOL ExecuteAsAdmin(CHAR * pFile, CHAR *pParameters, int nShow = SW_SHOWNORMAL,int bParam = 0);
static void SetFileAttributes(char *sPath,DWORD dwAttrs);
static BOOL CheckUrl(const char *url);
static void GetMainPath(char *sFolderName,int from =1);//1:从应用程序获取,2:从注册表获取
static void GetMainAppName(char *sMainAppName);
static DWORD EraseString(vector<string> &vec_str,string str);
static DWORD UniqueCopyString(vector<string> &vecFrom,vector<string> &vecTo);
static HWND GetWindowHWND(char *sCaption);
static BOOL CheckExistProc(DWORD dwPid);
static BOOL CheckExistProc(const char *szName);
static BOOL GetFileVersions(char * pFilePath, FILE_VERSION * pVerInfo);
static BOOL GetFileVersions2(char *pFileName, FILE_VERSION * pVerInfo);
static BOOL GetFileVersions2(DWORD dwId, FILE_VERSION * pVerInfo);
static BOOL CheckExistBuf(char *str,char *subStr);
static BOOL CheckExitList(list<string> &list_char,string buf);
static BOOL CheckExitList2(list<string> &list_char,string buf);
static void GetHostIp(char *svrIp);
static DWORD GetNowTimeStamp();
static DWORD GetPIDFromName(const char *szName);
static DWORD GetPIDFromName2(const char *szName,DWORD notID); //不是notID的进程号
static DWORD GetFileCheckSum(string sPath);
static string GetProcessAccount(DWORD dwPid);
static CString GetFullPathFromPID(DWORD dwPid);
static CString GetFileNameFromPID(DWORD dwPid);
static CString GetSysTimeStr();
static string GetSysTimeFormatStr(int format = 0);
static CString GetFormatTimeStr(CTime &tt,int format = 0);
static CString GetFormatDateStr(int idx,int format = 0);
static CString GetFormatTimeStr(int y,int m,int d,int h,int mi,int s);
static CString GetFormatTimeStrBeg(CTime &tt );
static CString GetFormatTimeStrEnd(CTime &tt);
static DWORD LoadProcList(vector<string> &vecProc);
static DWORD LoadProcList(vector<DWORD> &vecPid,vector<string> &vecProc);
static void ClearList(list<string> &list_char);
static void LoadBuf2List(list<string> &list_char,char *inBuf,char ch='*'); //ch 为分割标志
//static void AddRule2List(list<RULE_CLIENT_CHAR*> &list_rule,UINT nCmd, char *sContent);
//static void AddRule2List(list<RULE_CLIENT_INT*> &list_rule,UINT nCmd, int iContent);
static BOOL StartProcess(char *szPath,int mode = SW_SHOW);
static BOOL KillProcess(const char *szName,DWORD dwProcessID = 0);
static BOOL GetSelectedListItem(CListCtrl &lst,int iSubItem = -1,char *sItemText= NULL);
static int Split( char * line, char delimiter, char * items[] );
static void LogFile(const char *slog,...);
static string GetRuleText(UINT nID);
static int ParseVer(char* ver,int &major,int &minor,int &revi);//解析版本
static int CompareVer(char *ver1,char *ver2); //比较版本
static int ConvertUtf8ToANSI(char *sReadData,char *outData);
static int SaveUtf8ToFile(char *sReadData,char *xmlFile);
static BOOL GetProcInfo(IN CString procPath,OUT CString &name,OUT CString &proc,OUT CString &author);
static BOOL GetProcInfo(IN CString proc,OUT CString &name,OUT CString &author);
static void SetTransparent(CWnd *pWnd);
static void SetCaptionBK(CWnd *pWndParent,UINT uID,CString sCaption);
static int ExportDllSys(HMODULE hModule,UINT resID,LPCTSTR typeName,LPCTSTR dllName);
//以子进程形式
static int CreateProcessEx(char *cmd);
//删除非空文件夹
static bool DeleteDirectory(char* sDirName);
//枚举文件夹中文件
static int ListFileInDirectory(char *sDirName,vector<CString> &vecFile,int dep = 1);
static int GetShareMem(char *param,char *value);
static int SetShareMem(char *param,char * value);
static int SetShareMem(char *param,int value);
static void ShowTrayIcon(char szIcon[],BOOL hide);
static int CheckHasChinese(const char *str);
public:
static CString GetTmpFolder(void);
static CString GetAppDataFolder();
};
#endif // !defined(AFX_UTILFUNC_H__18154823_089F_4064_87D3_104F264FD76C__INCLUDED_)