powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сымитировать клик левой кнопкой мыши (API?)
25 сообщений из 79, страница 2 из 4
Как сымитировать клик левой кнопкой мыши (API?)
    #37785383
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я mouse_input не пользовался поэтому не знаю нужно ли для нее вызывать SetCursor
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785386
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
down up down, по ссылке указанной Вами, там же сказано: как такое провернуть в vb?
и затем 12 страниц топика, жесть пока зёрна от плевел отсоединю Новый год наступит, а хотелось бы к дню Победы
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785389
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если я не ошибаюсь то надо посмотреть с конца форум чтобы найти последнюю версию файла
найти zip в одном из них должен быть код vb нужный
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785395
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.sql.ru/forum/actualfile.aspx?id=11829466
это полный пример

а это кусок из него

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Private Sub SendInputMouseWithCheck()
    Dim stcMouseInput As MouseInputT
    Dim lngInputCount As Long
    Dim lngX As Long
    Dim lngY As Long
    Dim lngResultDword As Long


    Do While True
        SleepWinApi 5 * 1000

        lngX = 400
        lngY = 200
        SetCursorPosWithCheck lngX, lngY

        stcMouseInput.InputType = WinApiE.INPUT_MOUSE
        stcMouseInput.X = lngX
        stcMouseInput.Y = lngY
        stcMouseInput.MouseData = 0
        stcMouseInput.Flag = WinApiE.MOUSEEVENTF_LEFTDOWN
        stcMouseInput.TimeData = 0
        stcMouseInput.Extra = 0

        lngInputCount = 1
        lngResultDword = mobjFunctionSelector.SendInputV01(lngInputCount, VarPtr(stcMouseInput), WinApiE.MOUSE_INPUT_LENGTH)
        If lngResultDword <> lngInputCount Then
            ErrorHandlerV11 ErrorE.errCanNotPerformRequestedOperation
        End If

        SleepWinApi 400

        stcMouseInput.InputType = WinApiE.INPUT_MOUSE
        stcMouseInput.X = lngX
        stcMouseInput.Y = lngY
        stcMouseInput.MouseData = 0
        stcMouseInput.Flag = WinApiE.MOUSEEVENTF_LEFTUP
        stcMouseInput.TimeData = 0
        stcMouseInput.Extra = 0

        lngInputCount = 1
        lngResultDword = SendInputWinApi(lngInputCount, VarPtr(stcMouseInput), WinApiE.MOUSE_INPUT_LENGTH)
        If lngResultDword <> lngInputCount Then
            ErrorHandlerV11 ErrorE.errCanNotPerformRequestedOperation
        End If
        
        
        Exit Do
    Loop
End Sub


...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785396
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785398
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SleepWinApi
можно убрать и вообще оформить как надо
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785399
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тк координаты мыши экранные
то если надо их для окна пересчитывать
то этого в примере нет
но для начального теста можно ручками их проставить
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785400
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
down up down, и что делать с первой строчкой As MouseInputT, даже если опечатка и нужно As MouseInput - не катит
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785413
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=904988&msg=11823007
здесь большой zip
нем есть vb файлы
в одном из них есть объявления всех winapi функций
все winapi функции находятся в одном файле
тк это выдрано это из большой проги
чтобы не писать в каждом модуле
public declare и тд
соответственно
MouseInputT
SendInputWinApi надо найти объявления и использовать

WinApiDefinitionM.bas тут есть для MouseInputT
WinApiImportM.bas тут есть SendInputWinApi
WinApiImportM.bas тут есть SetCursorWinApi
ProtectSampleV01C.cls тут есть SendInputMouseWithCheck
если все использовать не хочется то надо скопировать нужное

вообщем вот так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
Public Declare Function SetCursorPosWinApi Lib "user32" Alias "SetCursorPos" _
( _
ByVal lngX As Long, _
ByVal lngY As Long _
) As Long

Public Declare Function SendInputWinApi Lib "user32" Alias "SendInput" _
( _
ByVal lngInputCount As Long, _
ByVal lngInputAddress As Long, _
ByVal lngInputItemSize As Long _
) As Long

Public Type MouseInputT
    InputType As Long
    X As Long
    Y As Long
    MouseData As Long
    Flag As Long
    TimeData As Long
    Extra As Long
End Type

Public Enum WinApiE
    INPUT_MOUSE = 0
    INPUT_KEYBOARD = 1
    MOUSEEVENTF_LEFTDOWN = 2
    MOUSEEVENTF_LEFTUP = 4
    KEYEVENTF_DOWN = 0
    KEYEVENTF_KEYUP = 2
    KEYEVENTF_UNICODE = 4
    KEYEVENTF_SCANCODE = 8
    MAPVK_VK_TO_VSC = 0

    MOUSE_INPUT_LENGTH = 28
    KEYBOARD_INPUT_LENGTH = 28
End Enum

Public Sub ErrorHandlerV11(ByVal lngError As ErrorE)
    Dim lngErrorDword As Long


    lngErrorDword = Err.LastDllError
    Err.Raise lngError
End Sub

Private Sub SendInputMouseWithCheck()
    Dim stcMouseInput As MouseInputT
    Dim lngInputCount As Long
    Dim lngX As Long
    Dim lngY As Long
    Dim lngResultDword As Long


    Do While True
        lngX = 400
        lngY = 200
        SetCursorPosWinApi lngX, lngY

        stcMouseInput.InputType = WinApiE.INPUT_MOUSE
        stcMouseInput.X = lngX
        stcMouseInput.Y = lngY
        stcMouseInput.MouseData = 0
        stcMouseInput.Flag = WinApiE.MOUSEEVENTF_LEFTDOWN
        stcMouseInput.TimeData = 0
        stcMouseInput.Extra = 0

        lngInputCount = 1
        lngResultDword = SendInputWinApi(lngInputCount, VarPtr(stcMouseInput), WinApiE.MOUSE_INPUT_LENGTH)
        If lngResultDword <> lngInputCount Then
            ErrorHandlerV11 ErrorE.errCanNotPerformRequestedOperation
        End If

        SleepWinApi 400

        stcMouseInput.InputType = WinApiE.INPUT_MOUSE
        stcMouseInput.X = lngX
        stcMouseInput.Y = lngY
        stcMouseInput.MouseData = 0
        stcMouseInput.Flag = WinApiE.MOUSEEVENTF_LEFTUP
        stcMouseInput.TimeData = 0
        stcMouseInput.Extra = 0

        lngInputCount = 1
        lngResultDword = SendInputWinApi(lngInputCount, VarPtr(stcMouseInput), WinApiE.MOUSE_INPUT_LENGTH)
        If lngResultDword <> lngInputCount Then
            ErrorHandlerV11 ErrorE.errCanNotPerformRequestedOperation
        End If
        
        
        Exit Do
    Loop
End Sub


...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785417
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я использую public Enum WinApiE
вместо констант тк если в редакторе ввести "WinApiE." то
ителисенс выдаст список всех констант что удобно
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785419
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
down up down, сейчас я опробую выложенное Вами, но я не пойму
узнаётся просто
Код: vbnet
1.
2.
3.
4.
Dim SelectionStart As Long
SelectionStart = Selection.Start '0
Dim SelectionEnd As Long
SelectionEnd = Selection.End '19


на промежутке 0 -19 стукнуть два раза, это такая сверхзадача?

сейчас я опробую выложенное Вами
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785423
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я отвечаю на вопрос
Re: Как сымитировать клик левой кнопкой мыши (API?)

я ведь не знаю где и для чего кликать
может действительно можно сделать как-то иначе в конкретном случае

что такое слекшен
какой объект
что по двойному клику должно быть

если мы знаем это действие так можем прямо нужную функцию вызвать

другими словами какая цела дабл клика в данном случае?
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785424
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаdown up down, сейчас я опробую выложенное Вами
опробовал, выделяет: Public Sub ErrorHandlerV11(ByVal lngError As ErrorE
>на промежутке 0 -19 стукнуть два раза, это такая сверхзадача????
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785428
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа, есть Ворд 2003, поле FormFields на вкладке формы, два раза по нему кликаем открываются параметры текстового поля, когда кликаем один раз, оно выделяется, это я расцениваю как событие и по неизвестному мне коду как его раскрыть, чтобы открылись параметры текстового поля???
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785429
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторVB6: У меня есть координаты X и Y. Хочу сделать так, чтобы контрол (MSFlexGrid в данном случае) решил, что юзер кликнул в это место левой кнопкой мыши


при такой формулировке остается только кликать имитацией
ведь известно что в гриде полно разных областей и ведут они себя по разному при двойном клике

другое дело если бы мы знали
что юзер делает дабл клик на заголовке колонки
чтобы автоматически установать ее ширину
тогда кликать не нужно
можно просто вызвать соответствующий метод у грида
он скорее всего есть
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785431
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторесть Ворд 2003, поле FormFields на вкладке формы
не понял где это

так а макрос записать для этих действий нельзя?
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785443
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
down up down,
>так а макрос записать для этих действий нельзя?
неа, когда на записи магнитофон стоит мышкой ничего сделать нельзя
а так выкладываю
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785461
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня 2010 версия
нашел в настройках тулбара кнопку которая вызывате нужный диалог
в 2003 есть такая же кнопка уверен
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785462
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
down up down, и как это будет программно?
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785463
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня она называется Properties
соответственно надо просто вызвать клик для нее а это возможно
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785472
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
down up down,
>просто вызвать клик для нее а это возможно
кто ж спорит, а как? есть код? эти две строчки кода
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785475
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
типа этого
Код: vbnet
1.
Selection.Fields.ToggleShowCodes


но не то
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785478
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже отлуп
Код: vbnet
1.
Selection.Fields.Application.ShowMe


я так понимаю должно быть слово Шоу и Диалог
Вот ересь
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785479
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
private sub Sample01
dim objApplication as Word.Application
dim objCommandBar as Office.CommandBar
dim objCommandBarControl as object
dim objCommandBarButton as Office.CommandBar
dim strCaptionCurrent as string
dim strCaptionRequired as string

strCaptionRequired="Prope&rties"

set objApplication = Application
for each objCommandBar in objApplication.CommandBars
for each objCommandBarControl in objCommandBar.Controls
if typeof objCommandBarControl is Office.CommandBar then
set objCommandBarButton=objCommandBarControl
strCaptionCurrent=objCommandBarButton.name
if strcomp(strcaptioncurrent,strcaptionrequired,vbcomparemethod.vbtextcompare)=0 then
msgbox "found"
'objCommandBarButton.Execute
endif
endif
next
next
end sub




1 надо задать правильно текст пункта меню
2 если найдено несколько с одинаковым именем то проверить которое из них работает
...
Рейтинг: 0 / 0
Как сымитировать клик левой кнопкой мыши (API?)
    #37785483
down up down
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
потерял баттон сцффикс


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
private sub Sample01
dim objApplication as Word.Application
dim objCommandBar as Office.CommandBar
dim objCommandBarControl as object
dim objCommandBarButton as Office.CommandBarButton
dim strCaptionCurrent as string
dim strCaptionRequired as string

strCaptionRequired="Prope&rties"

set objApplication = Application
for each objCommandBar in objApplication.CommandBars
for each objCommandBarControl in objCommandBar.Controls
if typeof objCommandBarControl is Office.CommandBarButton then
set objCommandBarButton=objCommandBarControl
strCaptionCurrent=objCommandBarButton.name
if strcomp(strcaptioncurrent,strcaptionrequired,vbcomparemethod.vbtextcompare)=0 then
msgbox "found"
'objCommandBarButton.Execute
endif
endif
next
next
end sub


...
Рейтинг: 0 / 0
25 сообщений из 79, страница 2 из 4
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сымитировать клик левой кнопкой мыши (API?)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]