我想问下 mouse_event 为何在win10下失灵了?
vb吧
全部回复
仅看楼主
level 7
97000946 楼主
用管理员权限运行也不行。但是在win7下又运行完美,什么原因呢?
2021年02月15日 09点02分 1
level 7
不会吧?我前几天才试过[啊]
2021年02月15日 09点02分 2
说错了 是移动鼠标不行,鼠标左键和右键没问题。模块代码在三楼,可以帮我看看么?
2021年02月15日 11点02分
level 7
97000946 楼主
'这是模块代码,鼠标左键单击 右键单击都没问题,唯独移动鼠标不行,为啥啊?
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'模拟鼠标
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 Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Public Sub YiDongSB(mw As Long, mh As Long)
Sleep 100
mouse_event MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE, mw, mh, 0, 0 '移动鼠标
End Sub
2021年02月15日 11点02分 3
Const MOUSEEVENTF_ABSOLUTE = &H8000&,加个&后缀就是长整型,不然&H8000默认为Integer就是负数。
2021年02月20日 02点02分
我刚刚试了下,在win7跟win10下都无效,但是用C++的话是没有问题的[汗] 不过你可以用SetCursorPos来代替这个
2021年02月15日 13点02分
这代码我用了很多年了,一直都没问题,唯独在win10下不能移动鼠标,我这***记本不兼容win7,真纠结。
2021年02月15日 15点02分
别的不说啊,你这个函数名挺有意思.... 移动SB???? 哈哈
2021年02月24日 14点02分
level 11
当时我在CSDN上看到与你相似的问题时,我也不懂,自以为的分析了一波,不过后来看了其他大佬的分析,算是明白了
2021年02月16日 05点02分 4
level 11
https://bbs.csdn.net/topics/398815977
2021年02月16日 05点02分 5
level 11
2021年02月16日 05点02分 6
你应该把sendmessage最后两个参数写成一个PointAPI,然后再试式,记得改成X as Integer Y as Integer 或着在数字后面加 &
2021年02月27日 07点02分
牛皮,还真的是啊,终于解决了
2021年05月13日 05点05分
@《顾名思义》 哈哈,我只是个搬运工,我是之前看CSDN上有人遇到这个问题,然后又在贴吧看见了,就顺带着将原因和解决方式搬运过来[滑稽]
2021年02月27日 08点02分
@《顾名思义》 嗯 和最后两个参数没多大关系,我只加了个 & 就可以了[呵呵]
2021年02月27日 12点02分
level 11
2021年02月16日 05点02分 7
其实写成&H8001&就行了,另外楼上的Val换成CLng能更准确地说明问题
2021年02月16日 05点02分
@初音✨七奈 我只是一个搬运工[滑稽]
2021年02月16日 06点02分
@余思培 我感觉 我看不懂,我也只是一个代码搬运工而已,拆分别人的代码组装成自己想要的功能 哈哈[笑尿]
2021年02月16日 09点02分
@97000946 具体到你的代码,就是把&H8000改成&H8000&,后面加个&,就可以了
2021年02月16日 10点02分
level 12
win10用excel,打印机命令经常出错.反正win10就是个怪胎,常出现莫名其妙的错误。
2021年02月17日 02点02分 8
@97000946 很多时候程序的BUG都是因为一个没有注意的小细节引起的
2021年02月20日 05点02分
先看完帖子再喷吧,这个错误明显是楼猪自己代码的错误,&H8000(=-32768)和&H8000&(=+32768)的区别。
2021年02月20日 02点02分
@yjryym 论代码搬运工的悲哀,啥也不是 啥也不会 啥也不懂[泪]
2021年02月20日 05点02分
@yjryym 嗯 谢谢大神的指导[呵呵]
2021年02月20日 05点02分
level 12
If Sheets("sheet9").Cells(6, 5) <> 0 Then
Sheets("sheet9").Select
Range("H6").ClearContents
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
2021年02月21日 08点02分 9
1