APIView知道吗mouse_event VB声明 
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) 
说明 
模拟一次鼠标事件 
参数表 
参数 类型及说明 
dwFlags Long,下述标志的一个组合 
MOUSEEVENTF_ABSOLUTE dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 
MOUSEEVENTF_MOVE 移动鼠标 
MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下 
MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起 
MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下 
MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下 
MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下 
MOUSEEVENTF_MIDDLEUP 模拟鼠标中键按下 
dx Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动 
dy Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动 
cButtons Long,未使用 
dwExtraInfo Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序 
注解 
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
 

解决方案 »

  1.   

    APIView知道吗mouse_event VB声明 
    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) 
    说明 
    模拟一次鼠标事件 
    参数表 
    参数 类型及说明 
    dwFlags Long,下述标志的一个组合 
    MOUSEEVENTF_ABSOLUTE dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 
    MOUSEEVENTF_MOVE 移动鼠标 
    MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下 
    MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起 
    MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下 
    MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下 
    MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下 
    MOUSEEVENTF_MIDDLEUP 模拟鼠标中键按下 
    dx Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动 
    dy Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动 
    cButtons Long,未使用 
    dwExtraInfo Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序 
    注解 
    进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
     
      

  2.   

    这个函数的用法很简单,但是要做你说的效果怕是有些麻烦,因为mouse_event 的位置是按数值来做的,它无法判断哪里是"我的电脑"的图标,2来“我的电脑”也并不是总放在一个地方的,所以必须得借助其他办法你是想演示什么?还是想实现什么效果
      

  3.   

    应该这样用:
    (假设我的电脑的坐标是50,100)先用SetcursorPos(50,100)
    将鼠标的指针放到目的位置。
    然后再模拟单击事件。
    mouse_event(MOUSEEVENTF_LEFTDOWN ,0, 0, 0, 0)
    sleep 10 '在按下鼠标左键和弹起之间延时10ms
    mouse_event(MOUSEEVENTF_LEFTUP ,0, 0, 0, 0)OK了。
      

  4.   

    mouse_event(MOUSEEVENTF_LEFTUP ,0, 0, 0, 0)
    程序说MOUSEEVENTF_LEFTUP 未声明,为什么???
    还有SetcursorPos(50,100)
    程序说没有错误,但是鼠标定位只能定位X,不能定位Y,Y的值在鼠标位置上老在屏幕最上边,为什么?
      

  5.   

    我的程序是
     Declare Auto 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)
        Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long
        Public abc As Long
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load    End Sub    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            abc = SetCursorPos(CLng(500), CLng(340))
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
        End Sub应该没有错误呀,为什么老调不通
      

  6.   

    Private Const MOUSEEVENTF_LEFTUP = &H4 '  left button up
      

  7.   

    Private Const MOUSEEVENTF_LEFTDOWN = &H2 '  left button down
      

  8.   

    Private Const MOUSEEVENTF_LEFTDOWN = &H2 '  left button down
    着句是声明一个常量么????但&H2是干什么用的?能解释一下么???
      

  9.   

    还有SetcursorPos(50,100)
    程序说没有错误,但是鼠标定位只能定位X,不能定位Y,Y的值在鼠标位置上老在屏幕最上边,为什么?哥哥能解释么?
      

  10.   

    Private Const MOUSEEVENTF_LEFTDOWN = &H2
    &H2是16进制的常数表示,其10进制就是2。
    SetCursorPos 50,100在我这里很正确,就是要到的位置
    实在不行,你就装一个sp5
      

  11.   

    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)Public Const MOUSEEVENTF_LEFTUP = &H4 '  left button up
    Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    Public Const MOUSEEVENTF_RIGHTDOWN = &H8 '  right button downPrivate Sub Command2_Click()
    SetCursorPos 50, 100
    mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0End Sub
    这是模拟一个鼠标右健的按下,我试了好用
      

  12.   

    楼主用的是VB.NET吧,我试过,可以呀!  
     
    Private  Declare  Function  SetCursorPos  Lib    "user32  "  (ByVal  x  As  Integer,  ByVal  y  As  Integer)  As  Integer  
     
    Private  Declare  Sub  mouse_event  Lib    "user32  "  (ByVal  dwFlags  As  Integer,  ByVal  dx  As  Integer,  ByVal  dy  As  Integer,  ByVal  cButtons  As  Integer,  ByVal  dwExtraInfo  As  Integer)  
     
    Private  Declare  Sub  Sleep  Lib    "kernel32  "  (ByVal  dwMilliseconds  As  Integer)  
     
    Private  Const  MOUSEEVENTF_LEFTDOWN  As  Short  =  &H2S  
    Private  Const  MOUSEEVENTF_LEFTUP  As  Short  =  &H4S  
    Private  Const  MOUSEEVENTF_RIGHTDOWN  As  Short  =  &H8S  
    Private  Const  MOUSEEVENTF_RIGHTUP  As  Short  =  &H10S  
     
    Private  Sub  Command1_Click(ByVal  eventSender  As  System.Object,  ByVal  eventArgs  As  System.EventArgs)  Handles  Command1.Click  
     
           SetCursorPos(50,  100)  
           mouse_event(MOUSEEVENTF_RIGHTDOWN,  0,  0,  0,  0)  
           Sleep  (10)  
           mouse_event(MOUSEEVENTF_RIGHTUP,  0,  0,  0,  0)  
     
    End  Sub  
     
    他是模拟在桌面上(50,100)点击鼠标右键。