Global.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #ifndef __GLOBAL_WECHAT__
  2. #define __GLOBAL_WECHAT__
  3. #include <tlhelp32.h>
  4. #include <vector>
  5. #include <string>
  6. using namespace std;
  7. #ifdef UNICODE
  8. typedef wstring TString;
  9. #else
  10. typedef string TString;
  11. #endif
  12. #define WECHAT _T("WeChat.exe")
  13. #define OGC_TOOL _T("Demo.exe")
  14. typedef struct __PROCINFO__
  15. {
  16. DWORD dwProId; // 进程id;
  17. TString strProName; // 进程名称;
  18. TString strProFile; // 进程路径;
  19. }ProInfo, *pProInfo;
  20. typedef struct __WNDINFO__
  21. {
  22. HWND hWnd;
  23. DWORD dwCtrlId;
  24. TCHAR szClassName[MAX_PATH];
  25. TCHAR szWndTitle[MAX_PATH];
  26. __WNDINFO__()
  27. {
  28. dwCtrlId = 0;
  29. memset(szClassName, 0, sizeof(TCHAR)*MAX_PATH);
  30. memset(szWndTitle, 0, sizeof(TCHAR)*MAX_PATH);
  31. }
  32. __WNDINFO__ &operator=(const __WNDINFO__ &that)
  33. {
  34. if ( this == &that )
  35. return *this;
  36. hWnd = that.hWnd;
  37. dwCtrlId = that.dwCtrlId;
  38. _stprintf(szWndTitle, _T("%s"), that.szWndTitle);
  39. _stprintf(szClassName, _T("%s"), that.szClassName);
  40. return *this;
  41. }
  42. }WNDINFO, *LPWNDINFO;
  43. typedef struct __WNDDATA__
  44. {
  45. DWORD dwPid;
  46. std::vector<WNDINFO> vtWndInfo;
  47. void AddWnd(WNDINFO &data)
  48. {
  49. if (!IsExistWnd(data.hWnd))
  50. vtWndInfo.push_back(data);
  51. }
  52. bool IsExistWnd(HWND hWnd)
  53. {
  54. bool bExist = false;
  55. for (std::vector<WNDINFO>::iterator it = vtWndInfo.begin(); it != vtWndInfo.end(); it++ )
  56. {
  57. if ( it->hWnd == hWnd )
  58. {
  59. bExist = true;
  60. break;
  61. }
  62. }
  63. return bExist;
  64. }
  65. }WNDDATA,*LPWNDDATA;
  66. // 全局变量;
  67. extern TCHAR g_szModulePath[MAX_PATH]; // 软件目录;
  68. extern TCHAR g_szModuleFileName[MAX_PATH]; // 软件名称;
  69. extern TCHAR g_szIniFile[MAX_PATH];
  70. // 配置文件信息;
  71. extern TCHAR g_szServAddress[MAX_PATH];
  72. extern DWORD g_dwServPort;
  73. extern TCHAR g_szAccount[MAX_PATH];
  74. extern TCHAR g_szPassword[MAX_PATH];
  75. extern TCHAR g_szWeChatPath[MAX_PATH];
  76. extern TCHAR g_szCacheDir[MAX_PATH];
  77. extern TCHAR g_szDynamicLibraryPath[MAX_PATH];
  78. // 控制台输出;
  79. extern BOOL g_bStdOut;
  80. extern int GetIniInfo(LPCTSTR lpIniDir = NULL, LPCTSTR lpIniName = NULL);
  81. extern DWORD FindProcess(LPCTSTR lpProName);
  82. extern vector<DWORD> FindAllProcess(LPCTSTR lpProName);
  83. extern void FindAllProcess(std::vector<ProInfo> &vtProInfo);
  84. extern HANDLE FindModule(LPCTSTR lpModuleName, DWORD dwPID);
  85. extern HANDLE FindModuleEx(LPCTSTR lpModuleName, DWORD dwPid);
  86. extern BOOL GetDebugPriv();
  87. extern BOOL GetFileVersion( IN HMODULE hModule, IN DWORD (&dwArray)[4]);
  88. extern BOOL GetFileVersionEx( IN LPCTSTR lpFileName, IN DWORD (&dwArray)[4] );
  89. extern BOOL GetProductVersion( IN HMODULE hModule, IN DWORD (&dwArray)[4]);
  90. extern BOOL GetProductVersionEx( IN LPCTSTR lpFileName, IN DWORD (&dwArray)[4] );
  91. extern BOOL GetOSDisplayString(LPTSTR pszOS);
  92. extern void WriteTextLog(const TCHAR *format, ...);
  93. extern BOOL CopyFileEx(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, const BOOL &bFailIfExists=TRUE);
  94. extern void tSplitpath(const char *path, char *drive, char *dir, char *fname, char *ext);
  95. extern void tSplitpath(const char *path, char *drive, char *dir, const int &nTimes);
  96. extern BOOL IsDirectoryLegitimate(const CString &strDirectory);
  97. extern void ShowSystemErrorInfo(CString strDescription, const DWORD &dwError);
  98. extern BOOL MySystemShutdown(LPTSTR lpMsg);
  99. extern BOOL PreventSystemShutdown();
  100. extern BOOL MySystemShutdown();
  101. // 根据进程pid获取进程对应程序的窗口句柄;
  102. HWND GetProcessMainWnd(const DWORD& dwTagetProcessId, LPCTSTR lpTagetWndName);
  103. // 获取指定进程名的进程主窗口;
  104. HWND GetProcessMainWnd(LPCTSTR lpProcessName, LPCTSTR lpTagetWndName);
  105. BOOL EnumProcessAllWnd(LPWNDDATA lpWndData);
  106. //////////////////////////////////////////////////////////////////////////
  107. extern BOOL GetWeChatPath();
  108. extern BOOL OpenWeChat();
  109. #endif