GSerg писал(а):- Ничего не знаю про CopyMemory применительно сюда
- Аааа, дык почему же ты не в форум по .NET постишь?
- Маршалинг - вещь особо злостная, после того, как в ней разберёшься
- Чё-то не вижу описания того, что SendInput суть обёртка
- ЗАСТАВИТЬ обработать сообщения в очереди НЕЛЬЗЯ
Я прям чуть не застрелился.
Я перерыл весь форум по поиску SendInput. Как правило его упоминал ты но ни одного примера нетутиэ
Нашел только вот этот пример.
- Код: Выделить всё
Dim GInput(0 To 0) As GENERALINPUT
Dim KInput As MOUSEINPUT
KInput.dwFlags = MOUSEEVENTF_LEFTDOWN
GInput(0).dwType = INPUT_MOUSE
CopyMemory GInput(0).xi(0), KInput, Len(KInput)
Call SendInput(1, GInput(0), Len(GInput(0)))
Во всех примерах этот код или его клон, но везде есть копирование структуры через CopyMemory. Если можно иначе то плз код в студию ( токо без ассемблерных вставок и ручного заполнения массива байтов)
[*]Аааа, дык почему же ты не в форум по .NET постишь?
Так чего клонов плодить. Про нажатие мыши и так раз в неделю.
[*]Чё-то не вижу описания того, что SendInput суть обёртка
Это я предположил - т.к. гдето есть упоминание что начиная с 2000 виндов микрософт рекомендует использовать SendInput вместо Mouse_event - вот я и подумал что меняю шило на мыло.
[*]ЗАСТАВИТЬ обработать сообщения в очереди НЕЛЬЗЯ
У меня вот такая бяка
- Код: Выделить всё
poz1 = GetCursorPos(po2)
ret = ClientToScreen(CType(hWND, IntPtr), po)
x = po.x + 214 : y = po.y + 79
ret1 = SetCursorPos(x, y)
mouse_event(6, x, y, 0, 0)
SetCursorPosition(poz1)
Так вот траблса в том что если я вставляю SetCursorPosition(poz1)
то кнопка не нажимается. Дя и вообще при этом коде кнопка нажимается не в 100 процентах а как сама захочет. Я фигею уже вторую неделю. такое впечатление что обработка нажатия идет с задержкой и позиция курсора берется не в момент нажатия а в момент обработки события.
Неед хелп.