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 
         } 
    } 
    }
    

      

  • 相关阅读:
    【dp】船
    【dp】PKU 1952 buy low,buy lower
    【dp】合唱队形
    【dp】导弹拦截
    【dfs】POJ1321 棋盘问题
    工程师工作与学习的模式
    如何进行大规模在线数据迁移(来自Stripe公司的经验)
    Laravel事件监听器listener与事件订阅者Subscriber的区别
    微信小程序时间处理问题
    [翻译] Facebook HHVM 团队封闭开发三周成果展
  • 原文地址:https://www.cnblogs.com/anlaoliu/p/7474465.html
Copyright © 2011-2022 走看看