ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

控制其他 应用软件的 菜单 外挂

2022-01-25 17:31:49  阅读:208  来源: 互联网

标签:rt 外挂 菜单 int 应用软件 firstX 扫雷 SendMessage


外部程序 控制扫雷 程序 菜单

如何控制另一个exe程序中的菜单操作

FindWindow(FindWindowEx) → 得到hWnd
GetMenu → 得到主菜单 hMenu
GetSubMenu → 得到子菜单(从0开始算) hSubMenu
GetMenuItemID → 得到子菜单中某个项目的ID(从0开始算) hID
SendMessage hWnd, WM_COMMAND, hID, hSubMenu

SendMessage 中的第四个参数加上ByVal

下面是win7系统自带的扫雷程序:
在这里插入图片描述

void CMineSweepConDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码

	HWND hMineWindow = ::FindWindow(NULL, _T("扫雷"));

	int firstX = 90;
	int firstY = 130;
	int sizeBlock = 36;
	int x = 0, y = 0;
	POINT pt;

	//获得扫雷的窗口位置
	RECT rt;
	if (!::GetWindowRect(hMineWindow, &rt))
	{
		AfxMessageBox(_T("取得扫雷窗口位置失败!"));
		return;
	}

	AfxMessageBox(_T("取得扫雷窗口位置成功!"));
	firstX += rt.left;
	firstY += rt.top;

	//发送一次按键以生成地雷信息
	x = firstX, y = firstY;
	::GetCursorPos(&pt);       //备份当前鼠标位置
	::SetCursorPos(x, y);
	::SendMessage(hMineWindow, WM_LBUTTONDOWN, 0, (y << 16) | x);       //发送第一次按键使得第一个方块获得焦点
	::SendMessage(hMineWindow, WM_LBUTTONUP, 0, (y << 16) | x);
	::SendMessage(hMineWindow, WM_LBUTTONDOWN, 0, (y << 16) | x);       //发送第二次按键使得第一个方块被按下
	::SendMessage(hMineWindow, WM_LBUTTONUP, 0, (y << 16) | x);
	::SetCursorPos(pt.x, pt.y); //恢复鼠标位置

}

上面的操作是 点击一下 扫雷程序,左上角的那个方格。

如何定位 控制菜单呢?

标签:rt,外挂,菜单,int,应用软件,firstX,扫雷,SendMessage
来源: https://blog.csdn.net/wowocpp/article/details/122688987

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有