Форум программистов, компьютерный форум, киберфорум
FASM
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
159 / 16 / 0
Регистрация: 14.09.2010
Сообщений: 421
Записей в блоге: 6
1
FASM

SendInput как нажать ALT+SHIFT ?

07.11.2011, 04:22. Показов 3145. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Assembler
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
include '%fasm%/win64ax.inc'
section '.code' executable
start:
        sub rsp,8
 
        mov [z],$-pInputs
        mov [ki.wVk],VK_TAB+VK_MENU
        invoke Sleep,1000
        invoke SendInput,1,pInputs,[z]
exit:
        invoke ExitProcess,NULL
 
        VK_TAB = 0x0009
        VK_MENU = 0x0012
 
section '.data' readable writeable
 
        z rd MAX_PATH
 
struct KEYBDINPUT
 
        wVk dw ?
        wScan dw ?
        dwFlags dd ?
        time dd ?
        dwExtraInfo dd ?
ends
        ki KEYBDINPUT
 
struct INPUT
 
        mi dd ?
        ki dd ?
        hi dd ?
ends
        pInputs INPUT
 
section '.idata' import readable
 
        library kernel32,'KERNEL32.DLL',user32,'USER32.DLL'
        include '%fasm%/api/kernel32.inc'
        include '%fasm%/api/user32.inc'
Добавлено через 3 минуты
Этот код я полностью написал сам читая мсдн, ничего не понятно, ничего не получается, ну пожалуйста покажите пример?
Мне же я надеюсь тут не нужен хендл окна, ведь функция не спрашивает? Почему ничего не работает?
Если на рабочем столе нажать ALT+SHIFT сами знаете что происходит, мне именно это и нужно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2011, 04:22
Ответы с готовыми решениями:

Как программно нажать Shift, Alt и Ctrl?
Как с помощью SendKeys.Send программно нажать Shift, Alt или Ctrl? В таблице на MSDN нет кодов этих...

Как в SendKeys прописать сочетания Alt+Shift и Shift+Enter
Как в SendKeys прописать сочетания Alt+Shift и Shift+Enter ? Может где-то можно найти полное...

Как сэмулировать нажатие клавиш Alt+Space, используя функцию SendInput?
Друзья! МНе нужно на консоли получить меню. То есть нажал левую ALT, нажал пробел, отпустил пробел,...

Нужен подсказщик в WinLock! Нужно отключить Alt+Tab, Ctrl+Alt+Del, Ctel+Shift+Esc !!!!!
Здравствуйте! Мне нужна помощь... Нужно отключить вот эти комбинации клавиш в WinLock: Alt+Tab, ...

8
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
07.11.2011, 20:46 2
Цитата Сообщение от semiono Посмотреть сообщение
Этот код я полностью написал сам читая мсдн,
разве так в MSDN описана структура INPUT, как у тебя?
Вот так попробуй,
Assembler
1
2
3
4
5
6
7
8
INPUT STRUCT
    itype DWORD ?
    UNION
    mi MOUSEINPUT <>
    ki KEYBDINPUT <>
    hi HARDWAREINPUT <>
    ENDS
INPUT ENDS
может, заработает?
1
159 / 16 / 0
Регистрация: 14.09.2010
Сообщений: 421
Записей в блоге: 6
07.11.2011, 21:41  [ТС] 3
VK_TAB+VK_MENU = VK_ESC

Добавлено через 8 минут
Цитата Сообщение от Vadimych Посмотреть сообщение
может, заработает?
так даже с подключением '%fasm%/macro/masm.inc' не работает, вопрос к специалистам, UNION и itype что делать?
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
07.11.2011, 23:53 4
semiono, отродясь на fasm`e не писал.
Assembler
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
include 'include/win32ax.inc'
section '.code' executable
start:
 
 
 
mov [input.type],0
mov [input.mi.dwFlags],MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_MOVE
mov [input.mi.time],0
mov [input.mi._dx],0ffffh/2
mov [input.mi._dy],0ffffh/2
invoke SendInput,1,input,z
 
invoke ExitProcess,0
 
 
section '.data' readable writeable
 
 
struct MOUSEINPUT
        _dx dd ?
        _dy dd ?
        mouseData dd ?
        dwFlags dd ?
        time dd ?
        dwExtraInfo dd ?
ends
 
struct KEYBDINPUT
        wVk dw ?
        wScan dw ?
        dwFlags dd ?
        time dd ?
        dwExtraInfo dd ?
ends
 
struct HARDWAREINPUT
        uMsg dd ?
        wParamH dw ?
        wParamL dw ?
ends
 
struct INPUT
        type dd ?
        union
        mi MOUSEINPUT
        ki KEYBDINPUT
        hi HARDWAREINPUT
        ends
ends
        input INPUT
        z=$-input
 
section '.idata' import readable
 
        library kernel32,'KERNEL32.DLL',user32,'USER32.DLL'
        include 'include/api/kernel32.inc'
        include 'include/api/user32.inc'
1
159 / 16 / 0
Регистрация: 14.09.2010
Сообщений: 421
Записей в блоге: 6
08.11.2011, 04:35  [ТС] 5
Vadimych, ну вот, теперь можешь начать
Спасибо огромное за помощь!
Assembler
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
include '%fasm%/win64ax.inc'
section '.code' executable
start:
        mov [input.mi.dwFlags],MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_MOVE
        mov [input.mi._dx],0ffffh/2
        mov [input.mi._dy],0ffffh/2
 
        invoke SendInput,1,input,z
exit:
        invoke ExitProcess,NULL
 
section '.data' readable writeable
 
struct MOUSEINPUT
 
        _dx dd NULL
        _dy dd NULL
        mouseData dd NULL
        dwFlags dq NULL
        time dd NULL
        dwExtraInfo dq NULL
ends
 
struct INPUT
 
        type dq NULL
        mi MOUSEINPUT
ends
        input INPUT
        z=$-input
Я попробовал под 64 бит твой код, три параметра пришлось расширить.

Добавлено через 50 минут
блин, invoke keybd_event,VK_ESCAPE,NULL,NULL,NULL работает без всякого шаманства,
почему они пишут что функа устарела, я так и не смог это же самое воспроизвести с SendInput.
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
08.11.2011, 05:48 6
Цитата Сообщение от semiono
блин, invoke keybd_event,VK_ESCAPE,NULL,NULL,NULL работает без всякого шаманства, почему они пишут что функа устарела, я так и не смог это же самое воспроизвести с SendInput.
semiono, потому что ты не воспользовался моим советом -- оттрейсить использование invoke keybd_event,VK_ESCAPE,NULL,NULL,NULL в OllyDbg внутри keybd_event находится SendInput, посмотрел, как и какие этой функции передаются параметры и сделал бы всё по образу и подобию...
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
08.11.2011, 06:23 7
Цитата Сообщение от Mikl___ Посмотреть сообщение
semiono, потому что ты не воспользовался моим советом -- оттрейсить использование invoke keybd_event

Не по теме:

Mikl___, мсдн читать, код пытаться писать, на форумах опять же. Может, на оттрейсить сил не остаётся?

0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
08.11.2011, 07:03 8
Цитата Сообщение от Vadimych
мсдн читать, код пытаться писать, на форумах опять же. Может, на оттрейсить сил не остаётся?

Не по теме:

Злые вы... :scratch:

1
159 / 16 / 0
Регистрация: 14.09.2010
Сообщений: 421
Записей в блоге: 6
09.11.2011, 07:39  [ТС] 9
Всё верно, сил не остаётся, я уже порой телепатически мсдн понимаю, чем дебаггер. Сплошной машинный код, очень тяжело. Причём x64 проблемма, вот сейчас попался мне юникод, опять же
я уверен в Olly это будет криво, наверное. Пока дебагер ещё не приобрёл human интерфейс.
Я сначала обрадовался когда Visual DuxDebugger увидел, всёж чё-то новенькое, пока не понял,
что под WinXP не работает, вот уроды! А Olly развивается медленно, его наверное чувак в одиночку пишет. Хороший отладчик, но к нему мозги нужно
0
09.11.2011, 07:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2011, 07:39
Помогаю со студенческими работами здесь

Эмуляция нажатия клавиш с зажатым Shift через SendInput
Приветствую всех! Использую SendInput для эмуляции набора текста и нажатия некоторых клавиш (по...

Ctrl+Shift vs Alt+Shift
Собственно сабж. Я использую Ctrl+Shift.

Как отследить нажаты ли Shift, Ctrl, Alt?
Например, если я хочу узнать при обработке события Worksheet_Change, что было нажато при изменении...

Как обработать нажатия Ctrl,Alt,win,shift??
Пробывал через регистрацию глобальных горячих клавиш,но чет не проперло:( lmouse_button :=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru