0 / 0 / 0
Регистрация: 27.04.2016
Сообщений: 29
1

SendInput() (user32.dll) работает с разными приложениями по разному

19.05.2017, 22:02. Показов 2327. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В приложения: блокнот, калькулятор и тому подобное с помощью метода SendInput из user32.dll у меня получается передавать все нужные клавиши. В игры CS 1.6 / CS:GO удается только открывать и закрывать меню, и то оно открывается не только на ESC а и на F1 - F12 на которые вообще не должно, на симуляция нажатий "символьных" клавиш(a-z,1-9) вообще не реагирует. Другая игра (The binding of Isaac) даже меню не закрывает/открывает. Кто объяснит почему так, а лучше как исправить?
...С SendKeys.SendWait(keys) всё тоже самое
C#
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
[DllImport("user32.dll", SetLastError = true)]
        private static extern uint SendInput(uint numberOfInputs, INPUT[] inputs, int sizeOfInputStructure);
        
public static void SendKeyPress(Keys keyCode)
        {
            INPUT input = new INPUT {
                Type = InputType.Keyboard
            };
            input.Data.ki = new KEYBDINPUT() {
                Vk = Convert.ToInt16(keyCode),
                Scan = 0,
                Flags = 0,
                Time = 0,
                ExtraInfo = IntPtr.Zero,
            };
        
            INPUT input2 = new INPUT {
                 Type = InputType.Keyboard
            };
            input2.Data.ki = new KEYBDINPUT() {
                Vk = Convert.ToInt16(keyCode),
                Scan = 0,
                Flags = 2,
                Time = 0,
                ExtraInfo = IntPtr.Zero
            };
            INPUT[] inputs = new INPUT[] { input, input2 };
            if (SendInput(2, inputs, Marshal.SizeOf(typeof(INPUT))) == 0)
                throw new Exception();            
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2017, 22:02
Ответы с готовыми решениями:

Загрузка из ресурсов работает по-разному с разными форматами изображений
Почему-то воспринимает такую строку Icon="Resources\favicon.ico" но не хочет...

Не работает GetLastInputInfo из user32.dll: время увеличивается несмотря на активность устройств ввода
Добрый день. Подскажите пожалуйста почему функция GetLastInputInfo из user32.dll не работает так,...

За какую функцию отвечают user32.dll,kernel32,winmm.dll
Помогите мне пожалуйста,разобратся с этими DLLками. Если есть где можно скачать матерьял,буду...

Непонятки с user32.dll
using System.Runtime.InteropServices; public static extern IntPtr...

3
Эксперт .NET
6507 / 4084 / 1605
Регистрация: 09.05.2015
Сообщений: 9,548
19.05.2017, 22:28 2
Зависит от того как конкретная программа обрабатывает события от устройств ввода... Есть Windows Messages, Direct Input и т.д.
1
0 / 0 / 0
Регистрация: 27.04.2016
Сообщений: 29
19.05.2017, 22:33  [ТС] 3
Someone007, можно конкретнее, я не смог ничего про это найти толкового в интернете
0
Эксперт .NET
6507 / 4084 / 1605
Регистрация: 09.05.2015
Сообщений: 9,548
19.05.2017, 22:41 4
В интернете полно информации
https://www.gamedev.net/topic/... -messages/
http://stackoverflow.com/quest... ssage-loop
https://www.google.ru/search?c... +raw+input
1
19.05.2017, 22:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2017, 22:41
Помогаю со студенческими работами здесь

Problems with user32.dll
Помогите, пожалуйста. Мне нужно программно переключиться на открытое приложение и нажать на нем в...

Проблема с user32.dll
Есть задание. Дан handle: H77E70000. Необходимо по этому handl'у получить: Name: User32.dll...

CopyCursor not found in user32.dll
надо продублировать свой курсор, использую CopyCursor, но она упорно не хочет находиться в этой...

Библиотека user32.dll на SP3
Здравствуйте! У меня тоже самое: Системная библиотека user32.dll перемещена в памяти. Работа...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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