Assist.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #ifndef __ASSIST__
  2. #define __ASSIST__
  3. #pragma once
  4. #include <map>
  5. #include <string>
  6. #include "ImgAssist.h"
  7. namespace GameGlobal {
  8. enum {
  9. GW_SMALL,
  10. GW_LARGE,
  11. GW_FULL,
  12. }GAME_WND;
  13. extern int titleBarHeight;
  14. extern int frameWidth;
  15. extern TCHAR g_szCurModuleFileName[MAX_PATH];
  16. extern TCHAR g_szCurModuleDir[MAX_PATH];
  17. extern TCHAR g_szCurModulePath[MAX_PATH];
  18. extern TCHAR g_szFna[_MAX_FNAME];
  19. extern TCHAR g_szExt[_MAX_EXT];
  20. extern TCHAR g_szAssistConfig[MAX_PATH];
  21. extern std::string g_strAppdir;
  22. extern std::string g_strGameDir;
  23. extern TCHAR g_szGameApp[MAX_PATH];
  24. extern TCHAR g_szTempDir[MAX_PATH];
  25. extern int nGameWndType;
  26. extern int nAttackCount;
  27. void Init();
  28. std::string BuildImgPath(HWND hWnd, LPCTSTR lpName = NULL);
  29. VOID DebugLog(CHAR* pszStr, ...);
  30. };
  31. // 所有坐标,都是基于游戏窗口的相对坐标值;
  32. // 游戏窗口:802*627
  33. namespace GameAssist{
  34. // 控件信息;
  35. typedef struct __CTRL_INFO__ {
  36. DWORD dwId; // 控件id;
  37. std::string strWinText; // 控件文本;
  38. std::string strClassName; // 控件类名;
  39. HWND hwnd; // 控件句柄;
  40. }CtrlInfo, * pCtrlInfo;
  41. extern std::vector<CtrlInfo> g_vtCtrlInfo;
  42. typedef struct __GAMEWNDINFO__
  43. {
  44. unsigned long lProcId; // 进程ID;
  45. HWND hWnd; // 进程窗口句柄;
  46. std::string strGameRoleName; // 角色名称;
  47. std::string strGameZoon; // 区域;
  48. std::string strGameServer; // 服务站
  49. LPVOID pAction; // CAction类对象;
  50. }GameWndInfo, * pGameWndInfo;
  51. extern std::vector<GameWndInfo> g_vtGameWndInfo;
  52. void ClearGameInfo(std::vector<GameWndInfo> &vtGWnd);
  53. extern RECT g_rcRoleIdleHP ;
  54. extern RECT g_rcRoleIdleSP ;
  55. extern RECT g_rcSummonerIdleHP;
  56. extern RECT g_rcSummonerIdleSP;
  57. extern RECT g_rcRoleFightingHP;
  58. extern RECT g_rcRoleFightingSP;
  59. extern RECT g_rcSummonerFightingHP;
  60. extern RECT g_rcSummonerFightingSP;
  61. // 设置游戏窗口前置;
  62. void SetGameForeground(HWND hWnd);
  63. // 判断游戏窗口是否前置;
  64. bool IsGameForeground(HWND hWnd);
  65. // 将窗口坐标转化为屏幕坐标;
  66. BOOL GamePos2Screen(HWND hWnd, POINT &pt, bool bOffset = false);
  67. // 将屏幕坐标转化为游戏坐标;
  68. BOOL ScreenPos2Game(HWND hWnd, POINT& pt);
  69. // 鼠标移动;
  70. void MouseMove(POINT pt, bool bSetCurPos = true);
  71. // 鼠标单击;
  72. void MouseClick();
  73. void MouseClick(POINT pt);
  74. // 鼠标双击;
  75. void MouseDbClick();
  76. void MouseDbClick(POINT pt);
  77. // 鼠标右击;
  78. void MouseRClick();
  79. void MouseRClick(POINT pt);
  80. // 鼠标拖动;
  81. void MouseDrag(POINT pt);
  82. // 发送按键;
  83. void SendKey(DWORD key, BOOL bCtrl = FALSE, BOOL bAtl = FALSE, BOOL bShift = FALSE);
  84. // 获取剪切板字符串;
  85. CString GetClipboradString();
  86. // 设置剪切板字符串;
  87. BOOL SetClipboardString(LPCTSTR lpString);
  88. // 根据进程名获取进程pid;
  89. DWORD GetProcessId(LPCTSTR lpProcessName = _T("Game.exe"));
  90. // 获取所有指定进程名的进程pid;
  91. void GetAllProcessId(std::vector<DWORD>& vtPid, LPCTSTR lpProcessName = _T("Game.exe"));
  92. // 根据进程pid获取进程对应程序的窗口句柄;
  93. HWND GetProcessMainWnd(const DWORD& dwTagetProcessId, LPCTSTR lpTagetWndName = _T("大话水浒"));
  94. // 获取指定进程名的进程主窗口;
  95. HWND GetProcessMainWnd(LPCTSTR lpProcessName = _T("Game.exe"), LPCTSTR lpTagetWndName = _T("大话水浒"));
  96. // 获取所有指定进程名的进程主窗口;
  97. void GetAllProcessMainWnd(const std::vector<DWORD>& vtPid, std::vector<GameWndInfo>& vtGWnd, LPCTSTR lpTagetWndName = _T("大话水浒"));
  98. // 枚举指定进程的窗口;
  99. extern BOOL CALLBACK EnumChildWindowCallBack(HWND hWnd, LPARAM lParam);
  100. };
  101. #endif // __ASSIST__