通过api获取句柄控制其他窗体(转)

C# 获得窗体句柄并发送消息(利用windows API可在不同进程中获取 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.IO; namespace findW. 阅读详情

通过api获取句柄控制其他窗体很多时候,编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口。比如,操作飞信定时发送短信等。我之前开发过飞信耗子,用的是对飞信协议进行抓包,然后分析协议,进而模拟协议的执行,开发出了客户端,与移动服务器进行通信,但是这有一些缺点。如果移动的服务器对接口进行变更,我所编写的客户端也要进行相应的升级。如果服务器的协议进行了更改,甚至个人编写的这种第三方客户端需要重写。而我个人也没有这个时间和精力,或者说没有足够的利益支撑我继续去重构飞信耗子。因此,这款还算优秀的软件,现在就束之高阁了,我自己也觉得遗憾。上周,某项目验收,需要修改界面,但是零时找不到源码了。我在两三个小时内要解决这个问题,时间紧迫。我突然想起室友以前做过模拟鼠标键盘去发送飞信消息的小程序。于是我赶紧电话咨询了一下。然后掌握了这个技巧,按时解决了问题。我觉得这个技巧还是很有用的,现总结如下:
首先,引入如下三个API接口:
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);

[DllImport("User32.dll ")]
public static extern IntPtr FindWindowEx(IntPtr parent, IntPtr childe, string strclass, string FrmText);
第一个与第三个是用于查找窗口句柄的,凡运行于Windows上的窗口,都具有句柄。窗口上的文本框,按钮之类的,也有其句柄(可看作子窗口句柄)。这些句柄的类型可以通过Spy++进行查询。比如C语言编写的程序中,文本框的句柄类型一般为“EDIT”,C#写的程序则不是,可以具体去查。第二个接口

c# 获取当前活动窗口句柄,获取窗口大小及位置 控制窗体发送数据 操作窗体 需调用API函数 需在开头引入命名空间 using System.Runtime.InteropServices; 获取当前窗口句柄:GetForegroundWindow() [DllImport(user32.dll”, CharSet = CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); 返回值类型是IntPtr,即为当前获得焦点窗口的句柄 使用方法 : IntPtr m 阅读详情

相关推荐

深入掌握Windows句柄操作与窗体控制实战

OutputDebugStringA("拦截到 WM_SETTEXT 消息\n");// 可在此处过滤非法文本该机制可用于实现文本校验、日志记录或拒绝恶意修改。HWND hwnd;// 消息目标窗口句柄// 消息标识符,如 WM_LBUTTONDOWN// 附加参数(含义依消息类型而定)// 长参数,常用于坐标或控件IDDWORD time;// 消息产生时间(毫秒)POINT pt;// 鼠标当前位置} MSG;逻辑分析在上述代码中,GetMessage。

weixin_42627459的博客 1325

易语言多窗口同步操作源码

易语言多窗口同步操作源码

实现通过窗体句柄控制鼠标移动和点击的高级技巧

SPY++是一个Windows调试工具,可以通过图形用户界面来浏览和监视系统中的窗口。它可以帮助开发者获取窗口句柄、消息和线程信息。窗口视图:显示系统中的所有窗口,并且以树状结构展现窗口之间的父子关系。子窗口信息:当选中一个窗口后,此部分将显示该窗口的详细信息,如句柄、类名、父窗口句柄等。消息日志:监视选定窗口的所有消息。线程视图:显示系统中的所有线程,并显示每个线程的创建过程。在Windows编程中,

weixin_35754676的博客 1206

c#获取窗体句柄模拟鼠标点击

c#获取窗体句柄模拟鼠标点击实例2012年8月20日23:48:21,代码清楚,有详细注释,希望对大家有用

[windows编程] 如何利用句柄操作其他windows窗体(1)

如何利用句柄操作其他windows窗体? 首先你需要获得需要操作窗体(A)句柄。 第二需要你获得窗体(A)中控件的ID号,比如文本框(Edit)控件的ID 第三需要根据控件的ID获得控件的句柄(hwnd) 第四根据hwnd对控件进行操作 明白了上述任务之后,那么下面的就是具体如何操作了。 第一:获得窗体句柄         分为两种情况,窗体有标题和窗体没有标题 有标题的窗体

示申 言舌 的专栏 6643

C# 向其它窗口 按键消息

应用:像生产的烧录软件,是由第三方提供你无法修改。但又想在烧录程序时将bin文件中的序列号每烧一次加1;             那么实现以前工作,可以做一个app将bin文件加1,然后向烧录软件发消息。例如烧录软件识别F9, using System.Runtime.InteropServices; [DllImport("user32.dll", EntryPoint = "

hehui211的专栏 1481

c# sendmessage 发送键盘按键详解

废话不说,直接说demo   1.先

zhongheijituan的专栏 2万+

通过api获取句柄控制其他窗体

很多时候,编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口。比如,操作飞信定时发送短信等。我之前开发过飞信耗子,用的是对飞信协议进行抓包,然后分析协议,进而模拟协议的执行,开发出了客户端,与移动服务器进行通信,但是这有一些缺点。如果移动的服务器对接口进行变更,我所编写的客户端也要进行相应的升级。如果服务器的协议进行了更改,甚至个人编写的这种第三方客户端需要重写。而

NickWei的博客 9975

C#模拟window操作鼠标的方法

主要介绍了C#模拟window操作鼠标的方法,可实现模拟鼠标移动到固定位置后点击右键的功能,涉及鼠标常用事件的操作技巧,需要的朋友可以参考下

windows 多窗口同步软件(键+鼠)

一定要用管理员身份运行!!!! 绑定模式不同的程序参数不一样 自己测试!!! 具体绑定参数查看说明 基于dm插件,易语言开发 拖动十字准星到想要同步的窗口,默认第一个窗口为主操作窗口(可右键自己设定) 绑定模式为dm插件的模式 下载后看说明吧 我是用来多开同步腾讯手游助手的 绑定模式 鼠标 windows 键盘 dx 模式0 即可, 其它自己摸索吧 注: 只有鼠标在主操作窗口时 才会同步

C#基于winform所创建的模拟键盘程序

C#基于winform所创建的模拟键盘程序,因为有项目需求,所以自定义一个模拟键盘。包含模拟发送键盘指令、最小化显示悬浮框等。项目能直接运行在触摸屏上。在这个程序中,能运用到如下知识:1、通过win32发送键盘直连;2、通过SendKeys.Send、SendKeys.SendWait等发送指令;3、winform窗体变成圆形,且填充图片等

易语言窗口同步操作源码

易语言窗口同步操作源码

vbs获取程序窗体句柄_VC 获取控制窗体句柄(hWnd)

在Windows中,句柄是一个系统内部数据结构的引用。比如当你操作一个窗体。或说是一个Delphi窗体时,系统会给你一个该窗体句柄,系统会通知你:你正在操作142号窗体。就此你的应用程序就能要求系统对142号窗体进行操作——移动窗体、改变窗体大小、把窗体极小化为图标等。实际上很多Windows API函数句柄作为它的第一个參数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等。不只...

weixin_39616090的博客 1086

VC 获取控制窗体句柄(hWnd)

在Windows中,句柄是外国话,理解为编号的意思,只要你知道了这个窗口的句柄,就可以对这个窗体进行操作——移动窗体、改变窗体大小、把窗体极小化为图标等。Windows API函数中的句柄代表一些特殊元素,如窗体、位图、图标、内存块、光标、字体、菜单等。 在WinAPI中, FindWindowA(LPCSTR lpClassName ,LPCSTR lpWindowName); ...

jintingbo的专栏 3515

句柄操作窗体_句柄的理解及窗体句柄的应用

昨天小编只是在微头条随手发了一条关于句柄的内容,没想到居然很多人感兴趣,由于微头条的结构限制并不能很好的将句柄讲清楚,今天特地在这里将小编所掌握的关于句柄的知识分享给大家。句柄是什么我们先看权威的解释:句柄是整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象或实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,...

weixin_42356073的博客 1689

C#winform窗体如何通过windowApi的FindWindow函数获取窗体句柄

C#winform窗体如何通过windowApi的FindWindow函数获取窗体句柄 原文:C#winform窗体如何通过windowApi的FindWindow函数获取窗体句柄 在同一个程序里,传统方式是通过this来设置当前窗体的最大化、最小化等操作...

weixin_30642267的博客 1060
上一篇: C#基础之方法(Method)
下一篇: C#基础之字段(Field)、属性(Properties)和索引器(Indexer)
PVIT
博客等级 码龄16年 28粉丝 18原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值