Работа с мышкой HELP

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Predator
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 10.12.2002 (Вт) 18:55
Откуда: Russia

Работа с мышкой HELP

Сообщение Predator » 29.02.2008 (Пт) 12:08

Подскажите как создать кусок кода который будет выполнять нажатье левой кнопкой мыши...

Необходима строчка кода которая будет осуществлять нажатие мыши...

если непонятно спросил скажите что уточнить...

Заранее спасибки
все будет хорошо или нет тогда все будет плохо...

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 29.02.2008 (Пт) 22:23

Predator
Насколько я понял ты хочешь имитировать клик мышки на каком либо контроле? Или в общем на форме?
#define ROFL 0xDDDD

Predator
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 10.12.2002 (Вт) 18:55
Откуда: Russia

Сообщение Predator » 29.02.2008 (Пт) 23:47

мне нужно чтоб программа имитировала клик мыши на сторонней программе потом....

запущены 2 программы одна моя другая сторонняя

в моей стоит через сколько времени нажимать на мышку

мыш подводится в окно другой и поисходит событие клик - следовательно в сторонней проге происходит нажати на кнопку....
все будет хорошо или нет тогда все будет плохо...

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 02.03.2008 (Вс) 10:13

Почитай... это вырезка из справочника по API функциям. Вроде то что надо...
Вложения
mouse_event.doc
(30.5 Кб) Скачиваний: 125
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

Predator
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 10.12.2002 (Вт) 18:55
Откуда: Russia

Сообщение Predator » 02.03.2008 (Вс) 21:12

Код: Выделить всё


Public Class Form1

    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 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
        Me.Timer1.Enabled = True

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Form1.mouse_event(&H2, 0, 0, 0, 0) ----- ошибка
        Form1.mouse_event(&H4, 0, 0, 0, 0) -----ошибка
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Timer1.Enabled = False
    End Sub
End Class


незаработало.... или я что-то неверно понял?
все будет хорошо или нет тогда все будет плохо...

Predator
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 10.12.2002 (Вт) 18:55
Откуда: Russia

Сообщение Predator » 09.03.2008 (Вс) 17:45

вот идея проги


Код: Выделить всё
Public Class Form1

    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_ABSOLUTE = &H8000 ' absolute move
    Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
    Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
    Private Const MOUSEEVENTF_MOVE = &H1 ' mouse move
    Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
    Private Const MOUSEEVENTF_MIDDLEUP = &H40
    Private Const MOUSEEVENTF_RIGHTDOWN = &H8
    Private Const MOUSEEVENTF_RIGHTUP = &H10
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Timer1.Enabled = True
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Timer1.Enabled = False
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim x As Integer
        x = Val(Me.TextBox1.Text)
        x = x + 1
        Me.TextBox1.Text = x
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.TextBox1.Text = "да"
        mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
        mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)


    End Sub
End Class



там где mouse_event() - ошибка следующего содержания

A call to PInvoke function 'WindowsApplication1!WindowsApplication1.Form1::mouse_event' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

плиз жду помощи.....
все будет хорошо или нет тогда все будет плохо...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 10.03.2008 (Пн) 7:04

Замени в Declare Long на Integer и получай наслаждение. А затем добро пожаловать в MSDN в целях просветления за типы данных и их размеры в байтах.
Весь мир матрица, а мы в нем потоки байтов!

Predator
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 10.12.2002 (Вт) 18:55
Откуда: Russia

Сообщение Predator » 10.03.2008 (Пн) 13:48

огромное спасибо тебе
я обявление брал из API Списков

скажи где можно скачать MSDN актуальной версии
все будет хорошо или нет тогда все будет плохо...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.03.2008 (Вт) 8:33

Тынц. Ну и по окрестностям...
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 1

    TopList