在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模拟键盘鼠标操作网页相关推荐

  1. 程序模拟键盘鼠标操作

    用代码模拟键盘鼠标操作,主要用到keybd_event/mouse_event或者SendInput  API函数.使用示例如下(附注释):         /*         * 模拟键盘输入,以 ...

  2. Python 模拟键盘鼠标操作实战教程

    在某些情况下,如果我们需要进行自动化操作的应用没有提供相应的接口,我们无法直接通过Python来调用API实现自动化.这种情况下,Python也不是完全没有办法的,我们可以采用模拟键盘和鼠标的方式实现 ...

  3. java 模拟鼠标_java实现简单的模拟键盘鼠标操作

    简简单单的记录: 近期需要用到模拟键盘鼠标操作,所以记录下来,以备后用,看了很多例子,未标明引用,请见谅 package com.text.jna; import javax.imageio.Imag ...

  4. Cypress之模拟键盘鼠标操作以及页面元素拖动操作

    上篇文章讲解了使用cypress框架时,如何上传或者下载文件,以及定位操作iframe和shadow dom下的页面元素.此次课程将讲解如何模拟键盘输入.鼠标操作以及如何拖动页面元素,另外,会介绍如何 ...

  5. python在程序中模拟键盘鼠标操作

    Python中模拟键盘和鼠标最著名的模块是:pymouse 和 pykeyboard.一次安装两个模块比较麻烦,而有一个库整合了这两个模块,而且能支持跨平台操作,这个库叫 PyUserInput,通过 ...

  6. python模拟键盘鼠标操作

    python版本:3.6.2 扩展: autopy3 (python2.x的话 安装autopy 就可以了) //autopy是一个自动化操作的python库,可以模拟一些鼠标.键盘事件,还能对屏幕进 ...

  7. C/C++ Windows平台 模拟键盘 / 鼠标操作

    原理:调用Windows API 头文件: Windows.h 鼠标 参考:MSDN :mouse_event function 按键 使用定义在Winuser.h中的mouse_event函数(Wi ...

  8. java整理软件---java模拟键盘,鼠标操作

    1.Java 模拟键盘输入的小Demo,实现自动按下:模拟Ctrl+Alt+Z的按下和抬起    如果你开着qq的话,那么qq会自动弹出来.哈哈,代替人工操作; import java.awt.Rob ...

  9. 在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件

    引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过"我现在可以通过 ...

最新文章

  1. 网站优化有三个重点不能忽视
  2. C语言 · 比较字符串
  3. 分布式事务:两段式提交(最终一致性)
  4. word2vec的通俗理解
  5. File类判断功能的方法
  6. 7 useLayoutEffect、useDebugValue
  7. 信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
  8. SqlServer2005数据库文件损坏的拯救过程
  9. Harris角点检测算法优化
  10. SkyWalking 观测 Service Mesh 技术大公开
  11. 教你下载BarTender 2016
  12. MATLAB矩阵转置
  13. 华为设备配置OSPF的NSSA区域
  14. 博客开通 坚持做自己懒得做但是正确的事情
  15. linux 下串口编程,uclinux下串口编程
  16. xy轴坐标图数字表示_图纸上的坐标x,y轴上有好长的数字表示什么意思
  17. 我的印度IT之都清奈之行
  18. 川大c语言程序设计第二次作业答案,川大《C语言程序设计0008》15秋在线作业1满分答案...
  19. 树和二叉树(TreeBinary Tree)
  20. android 磨砂玻璃效果

热门文章

  1. Qmake创建项目文件
  2. C++判断一个数是否为armstrong number阿姆斯特朗数(附完整源码)
  3. 「C++」C++ Primer Plus 笔记:第三章 处理数据
  4. 21.等值线图(Counter Plot)、Contour Demo、Creating a “meshgrid”、Calculation of the Values、等
  5. 19_clickhouse,数据查询与写入优化,分布式子查询优化,外部聚合/排序优化,基于JOIN引擎的优化,SQL优化案例,物化视图提速,查询优化常用经验法则,选择和主键不一样的排序键,数据入库优化
  6. 06_特征选择,特征选择的原因,sklearn特征选择API
  7. Myeclipse的使用方法-添加,修改,删除JRE,修改项目中的jre不显示问题
  8. 检索数据_18_按照多个字段排序查询结果
  9. python四种可变类型_SICP Python 描述 2.4 可变数据
  10. python合理拆分类别_如何用Python进行词组拆分?