zoukankan      html  css  js  c++  java
  • c# 在WebBrowser中用SendMessage模拟鼠标点击

    using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Text; 
    using System.Windows.Forms; 
    using System.Runtime.InteropServices; 
    
    namespace BrowserMouseClick 
    { 
    public partial class Form1 : Form 
    { 
         [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] 
         static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); 
    
         [DllImport("user32.dll", SetLastError = true)] 
         static extern IntPtr GetWindow(IntPtr hWnd, uint uCmd); 
    
         [DllImport("user32.dll", CharSet = CharSet.Auto)] 
         static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount); 
    
         public Form1() 
         { 
             InitializeComponent(); 
         } 
    
         private void Form1_Load(object sender, EventArgs e) 
         { 
             webBrowser1.Navigate("http://www.devpub.com"); 
         } 
    
         private void btnMouseClick_Click(object sender, EventArgs e) 
         { 
             int x = 100; // X coordinate of the click 
             int y = 80; // Y coordinate of the click 
             IntPtr handle = webBrowser1.Handle; 
             StringBuilder className = new StringBuilder(100); 
             while (className.ToString() != "Internet Explorer_Server") // The class control for the browser 
             { 
                 handle = GetWindow(handle, 5); // Get a handle to the child window 
                 GetClassName(handle, className, className.Capacity); 
             } 
    
             IntPtr lParam = (IntPtr)((y << 16) | x); // The coordinates 
             IntPtr wParam = IntPtr.Zero; // Additional parameters for the click (e.g. Ctrl) 
             const uint downCode = 0x201; // Left click down code 
             const uint upCode = 0x202; // Left click up code 
             SendMessage(handle, downCode, wParam, lParam); // Mouse button down 
             SendMessage(handle, upCode, wParam, lParam); // Mouse button up 
         } 
    } 
    }
    

      

  • 相关阅读:
    一个有趣的.net程序死锁问题
    腾讯2013年实习生笔试题目(附答案)
    C#函数式程序设计初探基础理论篇
    IE的BUG?
    OpenPetra 以及CentOS Mono 3.0 部署包
    自己封装的内存缓存类DotNet.Caches.Bytecached
    Windows Azure Services安装及故障排查
    接口
    利用SQL Server的扩展属性自动生成数据字典
    CentOS配置ssh无密码登录的注意点
  • 原文地址:https://www.cnblogs.com/anlaoliu/p/7474465.html
Copyright © 2011-2022 走看看