Код (Text): 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' Этот код я полностью написал сам читая мсдн, ничего не понятно, ничего не получается, ну пожалуйста покажите пример? Мне же я надеюсь тут не нужен хендл окна, ведь функция не спрашивает? Почему ничего не работает? Если на рабочем столе нажать ALT+SHIFT сами знаете что происходит, мне именно это и нужно. Каждый раз когда начинаю читать про WM_SYSCOMMAND итд нервы не выдерживают от нагромаждения структур.
Значит программирование в Винде не для вас. Займитесь PHP и прочими адаптированными языками - там с этим проще. А ошибка элементарная. Т.к. не думаешь совсем. Писать VK_TAB+VK_MENU можно для битовых полей с флагами. А так у тебя получилось 9+12=1B - это VK_ESC ты как и все новички считаешь что на все случаи существует одна волшебная функция, которая делает то, что тебе нужно. Увы это не так. Либо есть готовая библиотека, которую кто-то запрограммировал под себя, либо читать MSDN и кропотливо делать эту библиотеку под себя. И больше думать и меньше спрашивать - быстрее научишься.
VK_ESC неужели только в этом ошибся! Да всё сказанное идеально подходит для меня PHP - одним названием пугает)) Однако не моя вина что так обстоит, было бы действительно лучше если бы всё по волшебству получалось, если я бы был гуру, я бы написал макрос: cominvk,VK_TAB+VK_MENU,MB_OK, ха-ха дауж, извините за эмоции) буду стараться!
блин, invoke keybd_event,VK_ESCAPE,NULL,NULL,NULL работает без всякого шаманства, почему они пишут что функа устарела, я так и не смог это же самое воспроизвести с SendInput, хотя мышь у меня зашевелилась, но с кибордом глухо лишь понял по ходу dwFlags dwExtraInfo type надо расширять до кворда (x64)