找一个VB或者bat批处理程序能够实现控制鼠标的

作者&投稿:答码 (若有异议请与网页底部的电邮联系)
用批处理可以实现模拟鼠标点击么?~

如果你想要用批处理来完成这个功能比较麻烦,你可以用其它脚本语言,比如:autoit、按键精灵等来完成这个工作。

要实现这个的话,鼠标来回单击,本来就不可以再进行其他操作了的。因为只有一个鼠标嘛~所以,现实点,就是按键精灵。

鼠标专用类模块

Option Explicit
DefLng A-Z

Private Type POINTAPI
X As Long
Y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private CurVisible As Boolean
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long
Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Public Sub LeftButtonDown()
Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
End Sub
Public Sub LeftButtonUp()
Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End Sub
Public Sub RightButtonDown()
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
End Sub
Public Sub RightButtonUp()
Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
End Sub

Public Property Get X() As Long
Dim tmpPoint As POINTAPI
Call GetCursorPos(tmpPoint)
X = tmpPoint.X
End Property

Public Property Let X(ByVal vNewValue As Long)
Call SetCursorPos(vNewValue, Y)
End Property

Public Property Get Y() As Long
Dim tmpPoint As POINTAPI
Call GetCursorPos(tmpPoint)
Y = tmpPoint.Y
End Property

Public Property Let Y(ByVal vNewValue As Long)
Call SetCursorPos(X, vNewValue)
End Property

Public Sub SnapTo(ctl As Control)
Dim pnt As POINTAPI
Dim xx As Long
Dim yy As Long

pnt.X = pnt.Y = 0
'Get Left-Top corner of control
Call ClientToScreen(ctl.hWnd, pnt)
xx = pnt.X + (ctl.Width \ 2)
yy = pnt.Y + (ctl.Height \ 2)
'xx = pnt.X + ctl.Width / (2 * (Screen.ActiveForm.Left + ctl.Left) / pnt.X)
'yy = pnt.Y + ctl.Height / (2 * (Screen.ActiveForm.Top + ctl.Top) / pnt.Y)
Call SetCursorPos(xx, yy)

End Sub

Public Sub ClipTo(ToCtl As Object)
On Error Resume Next
Dim tmpRect As RECT
Dim pt As POINTAPI
With ToCtl
If TypeOf ToCtl Is Form Then
tmpRect.Left = (.Left \ Screen.TwipsPerPixelX)
tmpRect.Top = (.Top \ Screen.TwipsPerPixelY)
tmpRect.Right = (.Left + .Width) \ Screen.TwipsPerPixelX
tmpRect.Bottom = (.Top + .Height) \ Screen.TwipsPerPixelY
ElseIf TypeOf ToCtl Is Screen Then
tmpRect.Left = 0
tmpRect.Top = 0
tmpRect.Right = (.Width \ Screen.TwipsPerPixelX)
tmpRect.Bottom = (.Height \ Screen.TwipsPerPixelY)
Else
pt.X = 0
pt.Y = 0
Call ClientToScreen(.hWnd, pt)
tmpRect.Left = pt.X
tmpRect.Top = pt.Y
pt.X = .Width
pt.Y = .Height
Call ClientToScreen(.hWnd, pt)
tmpRect.Bottom = pt.Y
tmpRect.Right = pt.X
End If
Call ClipCursor(tmpRect)
End With
End Sub

Private Sub Class_Initialize()
CurVisible = True
End Sub

Public Property Get Visible() As Boolean
Visible = CurVisible
End Property

Public Property Let Visible(ByVal vNewValue As Boolean)
CurVisible = vNewValue
Call ShowCursor(CurVisible)
End Property

……………………………………………………………………………………………
程序这样写:
dim a as new class1
a.x=x1
a.y=y1
a.LeftButtonUp
a.LeftButtondown
a.LeftButtonUp
a.LeftButtondown

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Const WM_MBUTTONDOWN = &H207
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) '定义鼠
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4

Private Sub Timer1_Timer() '来一个计时四小时来一次

Static i As Integer
i = i + 1
If i = 14400 Then
SetCursorPos 314, 185 '这是里的两个参数是你想要点的坐标改下就可以了啊0`
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '模拟鼠标的左键单击!
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '模拟鼠标的左键单击!这两一下也就是双击
i = 0

End If

End Sub
,我调试过了可以运行的啊

试试按键精灵吧,不用人教就会了!

我可以给你做


麻烦编辑一个vb\/js脚本
我明白你要的功能了,不过我没有写脚本,写了个批处理,同样很好用,就是移动文件,也不用剪切和复制,你看看合适不,有不懂的问我。你把“”之间的复制一下,在桌面上新建一个txt文件,粘贴之后保存为1.txt,然后将1.txt重命名1.bat 看看成不成 “echo off echo 不支持跨盘移动文件夹,同一...

大虾们,如何用代码在VB6.0里修改我的电脑→属性中的环境变量中的:“系...
系统变量在命令行里是可以设置的。比如 set XXX。你试试写个bat。让vb调用。或者直接:Shell "setx ...",vbHide SetX 有三种使用方式:语法 1:SETX [\/S system [\/U [domain\\]user [\/P [password]]] var value [\/M]语法 2:SETX [\/S system [\/U [domain\\]user [\/P [password]]] var...

vb 打开指定bat文件
Option Explicit Private Sub Form_Load()'从res中写入硬盘 Dim File() As Byte File = LoadResData(101, "CUSTOM")'标识号“ 101 ”类型“ "CUSTOM" ”可以自己改 Open "D:\\BAT.bat" For Binary As #1 '文件名“ "D:\\BAT.bat" ”可以自己改 Put #1, 1, File '保存 Close #1 '执行...

vb中调用.bat批处理文件遇到的问题,急
Private Sub Command1_Click()Open "f:\\copy.bat" For Output As #1 Print #1, "dir f:\\>a.txt" Close #1 '***在close前加回车 Shell ("f:\\copy.bat ")End Sub 我这里测试可以正常使用,会在F盘上生成一个BAT文件,及A.txt 对了,我加了一点东西 Private Sub Command1_Click()Open "...

我在VB中用Shell调用bat时如何传递参数?
bat文件貌似不支持直接传参数的 可以这样用:将bat中的参数用 $参数 代替 然后VB先读入该bat文件,然后文本替换参数字符串,然后将全部内容写回bat 再调用即可。

求解bat和C语言还有VB计算圆周率的代码。
回答:算法[ma教教主]说的很明白了,直接贴代码了。 C: #include long a = 10000, b, c = 2800, d, e, f[2801], g;main() { for(; b-c; ) f[b++] = a \/ 5; for(; d = 0, g = c * 2; c -= 14, printf(%.4d, e + d \/ a), e = d % a) for(b ...

用C,VB,BAT或者JAVA更改文件名
App.Path & "\\A\\" & Text2.Text & "(" & k & ")." & myext '注意:应先在窗体的Text2中输入重新命名的文件基本名 End If Next End End Sub 注意:本程序与文件夹A应放在同一目录[文件夹]中,而不是将本程序放在文件夹A中或其它地方,否则将找不到文件夹A 给你上传一个截图吧 ...

vb 调用bat复制文件出问题
楼主你好 是你的bat文件写错了 xcopy *.* d:\\游戏\\ \/e 是把当前bat文件所在目录的内容拷贝到d:\\游戏下。希望能帮助你!最后祝楼主国庆快乐。

如何用VB代码运行CMD里面或者记事本的程序
Open App.Path & "1.bat"For Output as 1 Print 1,"你的DOS命令"Print 1,"你的DOS命令2"Print 1,"你的DOS命令3"Print 1,"你的DOS命令4"Print 1,"你的DOS命令5"Print 1,"你的DOS命令6"Print 1,"你的DOS命令7"Close 1 Shell App.Path & "1.bat"'即可运行了,如果需要VB接受返回...

vb可以将bat代码封装VB里面吗? bat功能是批量处理替换字符文件。_百 ...
1、纯批处理就可以实现 2、纯vbs脚本就可以实现 3、纯vb应用程序就可以实现 4、vb+bat简直就是多此一举,费力不讨好,浪费时间

弓长岭区15239359666: 求一个批处理或VB代码! -
宁姚新博: 用vb调用二楼写好的批处理就可以了.shell执行.shell 批处理的路径 ,vbHide 就可以达到隐藏的效果了.把程序编译成EXE文件,然后把他放到启动菜单里边就可以了,

弓长岭区15239359666: 我想编一个程序.功能是能够调用其他的软件即可,用什么编程好,越简单越好. -
宁姚新博: 在XP中用批处理(脚本)吧,简单,举例如下:调用Windows的计算器程序-在你的目录中建立一个空的文本文档,命名为ls.bat-用记事本编辑ls.bat,输入下面内容(两行,第一行显示提示信息可省略):echo 调用计算器程序 calc.exe-在我的电脑中双击ls.bat,这个程序会调用Windows的计算器程序

弓长岭区15239359666: VB调用批处理程序 -
宁姚新博: 都可以 第一种: 假如那个bat文件为a.bat且跟VB程序同一文件夹,则调用方式为 shell app.path & "\a.bat"第二种: 两个程序给生成一个独立扩展名为.EXE文件可以有几种方法,比如VB的资源管理器,可以导入任何格式的文件进入一个exe程序,需要时释放,不过这里不需要那么复杂,这里可以使用写文件的方法,在VB程序运行时写一个bat文件(最普通的写文件方法,但是后缀名改为bat即可),然后再用上面的方法调用

弓长岭区15239359666: 求bat文件(批处理文件)或VBS可以运行2个批处理文件 -
宁姚新博: @echo off call a\setup.bat call b\setup.bat exit这样就行了,用相对路径表示就不存在C文件夹移动找不到路径的问题, call是指调用另一个批处理,被调用的批处理运行完毕后再回来.继续往下执行...

弓长岭区15239359666: 求一个BAT程序,批处理程序.谢谢.
宁姚新博: @echo off&setlocal enabledelayedexpansion for %%a in ("%~p0") do set "A=%%~nxa" set /a n=0 for %%a in (*.jpg *.png *.gif) do ( set /a n+=1 if not "%%~na"=="%A%" ren "%%~a" "%A%-!n!%%~xa")保存 为Bat放在文件夹A中执行

弓长岭区15239359666: 求大神帮我制作一个bat批处理文件,跪求了!上次你给我弄得,我采纳了! -
宁姚新博: 这个批处理是做不了的,除非你修改bat和cmd的文件关联,用一个js或vbs脚本打开这类文件(vbs不仅能让批处理最小化运行,你甚至还可以让所有批处理直接后台隐藏运行),当然了,这么做杀软肯定是要报毒的,而且万一你改错了注册表后...

弓长岭区15239359666: 寻求一段bat批处理代码 -
宁姚新博: ::══代══码══开══始═══ @echo off for /f "eol= skip=1 delims=: tokens=1" %%i in ('wmic logicaldisk where "drivetype'5'" get name') do md %%i:\folder pause::Coded By escortmnm from VBS团队::══代══码══结══束═══::说明:设立使用...

弓长岭区15239359666: 求一个bat批处理的程序
宁姚新博: @echo off for /f "delims=" %%a in ('dir /a-d-h/b') do if "%%~fa" neq "%~f0" ( if not exist "%%~na" md "%%~na" move /y "%%a" "%%~na")

弓长岭区15239359666: [求助] 想求一个VBS或BAT
宁姚新博: @echo off:startset /p name=请输入:if %name%==1 goto 1if %name%==2 goto 2echo 你的输入不是1或2 请重新输入pause>nulclsgoto start:1输入一要运行的命令exit:2输入干杯运行的命令exit

弓长岭区15239359666: 求一个.bat的批处理程序,实现只保留最近十天的以日期格式备份的文件,文件名称比如20131001, -
宁姚新博: @Echo Off&Setlocal Enabledelayedexpansion More +9 <"%~fs0"> tmp.vbs For /f %%a in ('cscript /nologo tmp.vbs') do Set fd=%%a Del /q tmp.vbs For /f "tokens=*" %%a in ('dir /a-d /b "%~dp0"') do ( Set a=%%~na If !a! lss !fd! (Echo "%...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网