当前位置:编程学习 > C#/ASP.NET >>

求控制鼠标键盘的vb代码

因为需要使用一个打印商标的程序,那个程序不支持导入,只支持键盘输入,很麻烦,所以我想用一个笨方法。控制鼠标到指定位置,模拟点击文本框,模拟键盘输入,再模拟点击打印按钮,这样就全自动了。所以想寻求在后台控制鼠标、键盘,以及测量当前鼠标位置坐标的代码,不知道哪位大侠可以提供,谢谢。 鼠标 控制 --------------------编程问答-------------------- 不同的動作用不同的圖片,當鼠標移動到圖片上的,前台javascript觸發Mouse_Over事件,每個圖片要做什麼,都要單獨寫一個事件。 --------------------编程问答--------------------
引用 1 楼 hdhai9451 的回复:
不同的動作用不同的圖片,當鼠標移動到圖片上的,前台javascript觸發Mouse_Over事件,每個圖片要做什麼,都要單獨寫一個事件。

不好意思,您没看明白我的意思。我并不是指网页制作技术,我是希望能够通过通过控制键盘和鼠标,达到自动控制exe程序的目的。 --------------------编程问答--------------------  真是,找累呀 --------------------编程问答--------------------

Private Sub MoveCursor()
   ' If the form's cursor is not the Default cursor,
   ' set the Current cursor, move the cursor's Position,
   ' and set its clipping rectangle to the form. 
   If Not Me.Cursor.Equals(Cursors.Default) Then
      Me.Cursor = New Cursor(Cursor.Current.Handle)
      Cursor.Position = New Point(Cursor.Position.X - 50, Cursor.Position.Y - 50)
      Cursor.Clip = New Rectangle(Me.Location, Me.Size)
   End If
End Sub

--------------------编程问答-------------------- 这个不难啊 我贴几段代码吧 移动鼠标和点击鼠标的,放到模块中直接调用即可。单击鼠标的代码包含了移动鼠标到指定位置,可以直接调用。
其他函数和常数自己找找吧。
Imports System.Runtime.InteropServices    '用于sizeof
Imports System.IO
Imports System.IO.Directory
Imports System.Threading.Thread
Imports System.Text
Public Declare Function SendInput Lib "user32.dll" Alias "SendInput" (ByVal cInputs As Int32, ByRef pInputs As MsInput, ByVal cbSize As Int32) As Int32
Public Const INPUT_MOUSE = 0 : Public Const INPUT_KEYBOARD = 1 : Public Const INPUT_HARDWARE = 2
 Public Structure MsInput
        Public type As Int32
        Public u As MOUSEINPUT 'InputUnion
    End Structure
 Public Structure MOUSEINPUT
        Public dx As Int32
        Public dy As Int32
        Public mouseData As Int32
        Public dwFlags As Int32
        Public time As Int32
        Public dwExtraInfo As IntPtr
    End Structure
 Public Function HengZuoBiao(ByVal x As Int32) As Int32
        HengZuoBiao = x / (GetSystemMetrics(SM_CXSCREEN) - 1) * 65535    '经验证,是要减一才能得到准确坐标
    End Function              'SendInput函数用,用来设定鼠标坐标
    Public Function ZongZuoBiao(ByVal y As Int32) As Int32
        ZongZuoBiao = y / (GetSystemMetrics(SM_CYSCREEN) - 1) * 65535    '经验证,是要减一才能得到准确坐标
    End Function              'SendInput函数用,用来设定鼠标坐标
 Public Sub MsMoveTo(ByVal x As Int32, ByVal y As Int32) ‘移动鼠标到指定位置
        Dim cbSz As Int32
        Dim MvMs As MsInput, InPuts(1) As MsInput
        With MvMs
            .type = INPUT_MOUSE
            .u.dx = HengZuoBiao(x)
            .u.dy = ZongZuoBiao(y)
            .u.mouseData = 0
            .u.dwFlags = MOUSEEVENTF_MOVE Or MOUSEEVENTF_ABSOLUTE
            .u.time = GetTickCount
            .u.dwExtraInfo = GetMessageExtraInfo
        End With
        cbSz = Marshal.SizeOf(MvMs)
        SendInput(1, MvMs, cbSz)
    End Sub   
 Public Sub MsLClk2(ByVal x As Int32, ByVal y As Int32)  ’ 模拟鼠标左键单击方法2   
        Dim cbSz As Int32
        Dim MvMs As MsInput, InPuts(1) As MsInput
        With MvMs
            .type = INPUT_MOUSE
            .u.dx = HengZuoBiao(x)
            .u.dy = ZongZuoBiao(y)
            .u.mouseData = 0
            .u.dwFlags = MOUSEEVENTF_MOVE Or MOUSEEVENTF_ABSOLUTE
            .u.time = GetTickCount
            .u.dwExtraInfo = GetMessageExtraInfo
        End With
        With InPuts(0)
            .type = INPUT_MOUSE
            .u.dx = HengZuoBiao(x)
            .u.dy = ZongZuoBiao(y)
            .u.mouseData = 0
            .u.dwFlags = MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_ABSOLUTE
            .u.time = GetTickCount
            .u.dwExtraInfo = GetMessageExtraInfo
        End With
        With InPuts(1)
            .type = INPUT_MOUSE
            .u.dx = HengZuoBiao(x)
            .u.dy = ZongZuoBiao(y)
            .u.mouseData = 0
            .u.dwFlags = MOUSEEVENTF_LEFTUP Or MOUSEEVENTF_ABSOLUTE
            .u.time = GetTickCount
            .u.dwExtraInfo = GetMessageExtraInfo
        End With
        cbSz = Marshal.SizeOf(InPuts(0))
        SendInput(1, MvMs, cbSz)
        SendInput(2, InPuts(0), cbSz)
    End Sub                 '模拟鼠标左键单击方法2           --------------------编程问答--------------------
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,