C# 使用Win32 API模拟键盘鼠标操作网页
在webbrowser控件中的document complete 事件中设置链接到自身
private void ieFrame_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
foreach (HtmlElement link in ieFrame.Document.Links)
{
link.SetAttribute("target", "_self");
}
foreach (HtmlElement form in ieFrame.Document.Forms)
{
form.SetAttribute("target", "_self");
}
}
使用下面封装完的函数模拟操作即可
#region 系统API申明区域
[DllImport("user32.dll")]
public static extern bool SetCursorPos(int x, int y);
[Flags]
public enum MouseEventFlag : uint
{
ABSOLUTE = 0x8000,
MOVE = 0x0001,
LEFTDOWN = 0x0002,
LEFTUP = 0x0004,
RIGHTDOWN = 0x0008,
RIGHTUP = 0x0010,
MIDDLEDOWN = 0x0020,
MIDDLEUP = 0x0020,
XDOWN = 0x0080,
XUP = 0x0100,
WHEEL = 0x0800,
HWHEEL = 0x01000,
VIRTUALDESK = 0x4000
}
[DllImport("user32.dll")]
public static extern bool mouse_event(MouseEventFlag dwFlags, int dx, int dy, uint cButton, UIntPtr dwExtraInfo);
[DllImport("user32.dll")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, UIntPtr dwExtraInfo);
/// <summary>
/// 模拟按左键
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
public void LeftClick(int x, int y)
{
Point p = Control.MousePosition;
SetCursorPos(x, y);
mouse_event(MouseEventFlag.LEFTDOWN, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LEFTUP, 0, 0, 0, UIntPtr.Zero);
SetCursorPos(p.X, p.Y);
}
/// <summary>
/// 模拟键盘操作
/// </summary>
/// <param name="k"></param>
public void PressKey(Keys k)
{
keybd_event((byte)k, 0, 0, UIntPtr.Zero);
keybd_event((byte)k, 0, 0x2, UIntPtr.Zero);
}
#endregion
C# 使用Win32 API模拟键盘鼠标操作网页相关推荐
- 程序模拟键盘鼠标操作
用代码模拟键盘鼠标操作,主要用到keybd_event/mouse_event或者SendInput API函数.使用示例如下(附注释): /* * 模拟键盘输入,以 ...
- Python 模拟键盘鼠标操作实战教程
在某些情况下,如果我们需要进行自动化操作的应用没有提供相应的接口,我们无法直接通过Python来调用API实现自动化.这种情况下,Python也不是完全没有办法的,我们可以采用模拟键盘和鼠标的方式实现 ...
- java 模拟鼠标_java实现简单的模拟键盘鼠标操作
简简单单的记录: 近期需要用到模拟键盘鼠标操作,所以记录下来,以备后用,看了很多例子,未标明引用,请见谅 package com.text.jna; import javax.imageio.Imag ...
- Cypress之模拟键盘鼠标操作以及页面元素拖动操作
上篇文章讲解了使用cypress框架时,如何上传或者下载文件,以及定位操作iframe和shadow dom下的页面元素.此次课程将讲解如何模拟键盘输入.鼠标操作以及如何拖动页面元素,另外,会介绍如何 ...
- python在程序中模拟键盘鼠标操作
Python中模拟键盘和鼠标最著名的模块是:pymouse 和 pykeyboard.一次安装两个模块比较麻烦,而有一个库整合了这两个模块,而且能支持跨平台操作,这个库叫 PyUserInput,通过 ...
- python模拟键盘鼠标操作
python版本:3.6.2 扩展: autopy3 (python2.x的话 安装autopy 就可以了) //autopy是一个自动化操作的python库,可以模拟一些鼠标.键盘事件,还能对屏幕进 ...
- C/C++ Windows平台 模拟键盘 / 鼠标操作
原理:调用Windows API 头文件: Windows.h 鼠标 参考:MSDN :mouse_event function 按键 使用定义在Winuser.h中的mouse_event函数(Wi ...
- java整理软件---java模拟键盘,鼠标操作
1.Java 模拟键盘输入的小Demo,实现自动按下:模拟Ctrl+Alt+Z的按下和抬起 如果你开着qq的话,那么qq会自动弹出来.哈哈,代替人工操作; import java.awt.Rob ...
- 在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件
引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过"我现在可以通过 ...
最新文章
- 网站优化有三个重点不能忽视
- C语言 · 比较字符串
- 分布式事务:两段式提交(最终一致性)
- word2vec的通俗理解
- File类判断功能的方法
- 7 useLayoutEffect、useDebugValue
- 信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
- SqlServer2005数据库文件损坏的拯救过程
- Harris角点检测算法优化
- SkyWalking 观测 Service Mesh 技术大公开
- 教你下载BarTender 2016
- MATLAB矩阵转置
- 华为设备配置OSPF的NSSA区域
- 博客开通 坚持做自己懒得做但是正确的事情
- linux 下串口编程,uclinux下串口编程
- xy轴坐标图数字表示_图纸上的坐标x,y轴上有好长的数字表示什么意思
- 我的印度IT之都清奈之行
- 川大c语言程序设计第二次作业答案,川大《C语言程序设计0008》15秋在线作业1满分答案...
- 树和二叉树(TreeBinary Tree)
- android 磨砂玻璃效果
热门文章
- Qmake创建项目文件
- C++判断一个数是否为armstrong number阿姆斯特朗数(附完整源码)
- 「C++」C++ Primer Plus 笔记:第三章 处理数据
- 21.等值线图(Counter Plot)、Contour Demo、Creating a “meshgrid”、Calculation of the Values、等
- 19_clickhouse,数据查询与写入优化,分布式子查询优化,外部聚合/排序优化,基于JOIN引擎的优化,SQL优化案例,物化视图提速,查询优化常用经验法则,选择和主键不一样的排序键,数据入库优化
- 06_特征选择,特征选择的原因,sklearn特征选择API
- Myeclipse的使用方法-添加,修改,删除JRE,修改项目中的jre不显示问题
- 检索数据_18_按照多个字段排序查询结果
- python四种可变类型_SICP Python 描述 2.4 可变数据
- python合理拆分类别_如何用Python进行词组拆分?