我想写段代码让鼠标每隔一段时间自己从屏幕的某一位置移动到另一位置,请问这如何实现,这代码怎么写呢,谢谢!

解决方案 »

  1.   

    用Windows API:BOOL SetCursorPos(
      int X,  // horizontal position
      int Y   // vertical position
    );
      

  2.   

    Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As LongPrivate 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_MOVE = &H1        '  mouse move
    Private Const MOUSEEVENTF_LEFTDOWN = &H2    '  left button down
    Private Const MOUSEEVENTF_LEFTUP = &H4      '  left button up
    Private Const MOUSEEVENTF_ABSOLUTE = &H8000 '  absolute move
    Private Sub TmrSys_Timer()
    'FrmMain.Caption = Format(Distance / UnitValue, FormatStr) & UnitName
        GetCursorPos Pnt
        NewX = Pnt.X ' * Screen.TwipsPerPixelX
        NewY = Pnt.Y '* Screen.TwipsPerPixelY
      '  Distance = Distance + Sqr((NewX - OldX) * (NewX - OldX) + (NewY - OldY) * (NewY - OldY))
        OldX = NewX
        OldY = NewY
         Dim posx, posy
     posx = OldX + 1: posy = OldY + 1
     a = SetCursorPos(posx, posy) mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, posx, posy, 0, 0  posx = OldX - 1: posy = OldY - 1
     a = SetCursorPos(posx, posy)
     mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, posx, posy, 0, 0 
      posx = OldX: posy = OldY
     a = SetCursorPos(posx, posy)
    ' mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, posx, posy, 0, 0
     mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, posx, posy, 0, 0
     'SendKeys "{f1}"
     'SendKeys "{f5}"
    End Sub
      

  3.   

    用mouse_event
    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_MOVE = &H1       
    Private Const MOUSEEVENTF_ABSOLUTE = &H8000Private Sub Command1_Click()
      mouse_event MOUSEEVENTF_ABSOLUTE OR MOUSEEVENTF_MOVE ,50000,50000,0,0
    End Sub
      

  4.   

    vb 界面设计时 如果想 控制焦点跳转到指定控件的话:
    object.setforcus
    object为你想要跳转的控件的名字