vbs鼠标方法——模拟鼠标按键

‘***********************************************************************

‘ 代码开始

‘***********************************************************************

Set mouse=New SetMouse

mouse.getpos x,y ‘‘获得鼠标当前位置坐标

MsgBox x & " " & y

mouse.move 60,14 ‘把鼠标移动到坐标
WScript.Sleep 200
mouse.clik "dbclick" ’左击

‘ "right" 右击, "middle" 中间键点击

‘*****************将以下代码加入到vbs文件末就能如以上方法调用*******************************************************************************************

‘****************************************************************************************************************************************************

Class SetMouse
private S
private xls, wbk, module1
private reg_key, xls_code, x, y

Private Sub Class_Initialize()
Set xls = CreateObject("Excel.Application")
Set S = CreateObject("wscript.Shell")
‘vbs 完全控制excel
reg_key = "HKEY_CURRENT_USER\Software\Microsoft\Office\$\Excel\Security\AccessVBOM"
reg_key = Replace(reg_key, "$", xls.Version)
S.RegWrite reg_key, 1, "REG_DWORD"
‘model 代码
xls_code = _
"Private Type POINTAPI : X As Long : Y As Long : End Type" & vbCrLf & _
"Private Declare Function SetCursorPos Lib ""user32"" (ByVal x As Long, ByVal y As Long) As Long" & vbCrLf & _
"Private Declare Function GetCursorPos Lib ""user32"" (lpPoint As POINTAPI) As Long" & vbCrLf & _
"Private Declare Sub mouse_event Lib ""user32"" Alias ""mouse_event"" " _
& "(ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)" & vbCrLf & _
"Public Function getx() As Long" & vbCrLf & _
"Dim pt As POINTAPI : GetCursorPos pt : getx = pt.X" & vbCrLf & _
"End Function" & vbCrLf & _
"Public Function gety() As Long" & vbCrLf & _
"Dim pt As POINTAPI: GetCursorPos pt : gety = pt.Y" & vbCrLf & _
"End Function"
Set wbk = xls.Workbooks.Add
Set module1 = wbk.VBProject.VBComponents.Add(1)
module1.CodeModule.AddFromString xls_code
End Sub

‘关闭
Private Sub Class_Terminate
xls.DisplayAlerts = False
wbk.Close
xls.Quit
End Sub

‘可调用过程

Public Sub getpos( x, y)
x = xls.Run("getx")
y = xls.Run("gety")
End Sub

Public Sub move(x,y)
xls.Run "SetCursorPos", x, y
End Sub

Public Sub clik(keydown)
Select Case UCase(keydown)
Case "LEFT"
xls.Run "mouse_event", &H2 + &H4, 0, 0, 0, 0
Case "RIGHT"
xls.Run "mouse_event", &H8 + &H10, 0, 0, 0, 0
Case "MIDDLE"
xls.Run "mouse_event", &H20 + &H40, 0, 0, 0, 0
Case "DBCLICK"
xls.Run "mouse_event", &H2 + &H4, 0, 0, 0, 0
xls.Run "mouse_event", &H2 + &H4, 0, 0, 0, 0
End Select
End Sub

End Class

‘***********************************************************************

‘代码结束

‘***********************************************************************

‘****************************************************************************************************************************************************

vbs鼠标方法——模拟鼠标按键

时间: 2024-10-12 07:37:26

vbs鼠标方法——模拟鼠标按键的相关文章

c#全局鼠标事件以及鼠标事件模拟

最近在编写Max插件时,其主容器FlowLayoutPanel由于隐藏了滚动条,要实现按住鼠标中键上下拖动的功能,因此尝试了全局鼠标事件.以及鼠标勾子,可惜由于Max不争气?都未能实现,于是代码报废,故将其分享于此. 一.全局鼠标事件,首先构建鼠标事件处理器 public delegate void MouseMovedEvent(); public delegate void MouseMDownEvent(); public delegate void MouseMUpEvent(); pu

使用Post方法模拟登陆爬取网页(转)

使用Post方法模拟登陆爬取网页 最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页.下面是极简版的代码: import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; impo

枚举 用类的方法模拟枚举

package cn.itcast.day1; public class Weekday0 { private Weekday0(){} public static final Weekday0 SUN = new Weekday0(); public static final Weekday0 MON = new Weekday0(); public static final Weekday0 TUS = new Weekday0(); public static final Weekday0

【计算机图形学课程】二.MFC鼠标响应函数模拟画图软件

上一篇文章我们讲述MFC绘制图形的基本函数,包括绘制直线.绘制矩形.绘制椭圆及绘制文字,同时通过绕圆旋转和矩形平移简单的理解了图形学知识.这篇文章我将介绍鼠标响应和键盘响应,通过这些事件让学生实现一个类似画图的简单软件,同时充分发挥学生想象,自己创作东西.        前文:       [计算机图形学课程]一.MFC基本绘图函数使用方法 一. MFC工程创建及鼠标响应 新建一个MFC 单文档的应用程序"MousePic". 然后,选择"View(视图)"->

小熊鼠标键盘模拟工具 使用说明 及核心代码

旧版本有些问题,请下载新版本 最版版本一载地址 很多人问的问题是怎么模拟向QQ群发送信息的 其实标题就说了是模拟鼠标,按键. 具体哪些按键呢,可能有些人习惯鼠标操作不太清楚,其实也很简单.enter键 next键.配合鼠标使用就可以了. 其实就是这么简单了. 核心代码: using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using Syste

python爬虫:两种方法模拟登录博客园

第一方法用第三方库(requests):参考http://www.mamicode.com/info-detail-1839685.html 源代码分析 博客园的登录页面非常简单,查看网页源代码,可以发现两个输入框的id分别为input1.input2,复选框的id为remember_me,登录按钮的id为signin. 还有一段JavaScript代码,下面来简单分析一下. 先来看$(function(){});函数: 1 $(function () { 2 $('#signin').bind

angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令

在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指令(5)-link文章也提到了link函数的第五个参数linker. 这篇文章就来讲解一下transclude()方法(linker()方法),是怎么使用的,另外,它也是compile函数的第三个参数,用法一样. 下面就通过自己写一个简易的模拟ngRepeat的指令cbRepeat,来了解linke

用LinkedList方法模拟栈的数据结构

import java.util.LinkedList; /** * * @author Ginfer * @virsion * HP * linkedlist * HP * 自定义栈集合 * 栈的数据结构是先进后出, */ public class MyStack { //创建一个成员对象 private LinkedList link; //添加一个构造方法,并默认new一个LinkedList对象 //当创建MyStack对象的时候其实默认是在底层创建了一个LinkedList对象 pub

Jquery使用trigger()方法模拟事件

一.模拟select $('#selectCount').change(function(){     $('select#some').val(10).change();     //or     $('select#some').val(10).trigger('change'); } 二.模拟点击 $("button:first").click(function () {     update($("span:first")); }); $("but