Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91

Передаём нажатия

16.03.2010, 15:03. Показов 4488. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех читателей!
У меня такая проблема образовалась. Вообщем надо другому приложению (игре допустим) передать нажатия клавиш (например "r").

Как такое возможно реализовать? Пожалуйста, если не затруднит, помоги. Примеры приветствуются.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2010, 15:03
Ответы с готовыми решениями:

Почему в качестве параметра метода main() мы передаём пустой строчный массив?
Добрый Вечер!!! Скажите Пожалуйста, почему в качестве параметра метода main() мы передаём пустой строчный массив?

После нажатия клавиши Enter или нажатия на Button
Помогите пожалуйста.:-[ Задача: После нажатия клавиши Enter или нажатия на Button поле курсора переходит в соответствующий компонент...

Отлов нажатия кнопки submit и блокировка последующего нажатия
Привет всем! Нужен код, который способствует блокировке нажатия кнопки после одного нажатия на нее. Спасибо. Добавлено через 54...

27
Peace 2 all shining faces
 Аватар для Vorona
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
16.03.2010, 15:10
другому? откуда?
char ch = getch();
switch(ch){
case ...
...
}
можно в файл записывать, считывать оттуда и очищать файл..
0
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
16.03.2010, 15:39  [ТС]
из консольного приложения на си++
и можно примерчик поподробнее? я новичёк, осваиваю
0
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
16.03.2010, 15:56
SendMessage, PostMessage функции для передачи данных подобного рода приложениям в Windows.
Дальше разбираться с параметрами. Справка. Желательно знание английского.
0
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
16.03.2010, 21:26  [ТС]
Вообщем надо передать окну (программе), например будет называться "MyGame" нажатие клавишы ESC.
Помогите, пожалуйста, такое реализовать. Уже читал про Send(Post)Message, но так и не дошло до меня
Заранее благодарен.
0
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
17.03.2010, 12:47
Вам потребуется handle окна, обрабатывающего нажатия.

Скорее всего вам потребуется отправлять эти сообщения:

WM_KEYDOWN
WM_KEYUP
WM_SYSKEYDOWN
WM_SYSKEYUP

lParam, wParam - хорошо разжеваны в справке.
Тут много ссылок по работе с клавиатурой. English!
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.03.2010, 16:57
Имитация клавишь в другом окне

Читать вдумчиво.
Принимаю подуманные вопросы.
1
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
21.03.2010, 13:34  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Имитация клавишь в другом окне

Читать вдумчиво.
Принимаю подуманные вопросы.
Ну вот у меня найдено окно,
C++
1
2
3
4
5
6
7
8
9
wchar_t AdresZagolovkaOkna [MY_BUFSIZE]= L"GTA:SA:MP";
    HWND DeskriptorOkna;
    if (!(DeskriptorOkna= FindWindow(NULL, AdresZagolovkaOkna))){
        printf ("GTA:SA:MP windows not detected\n" );
        getchar ();
    }
    else {
        printf ("GTA:SA:MP window detected. Deskriptor: %x\n", DeskriptorOkna);
    }
проверено, что главное
C++
1
2
3
if(GetWindow(DeskriptorOkna,GW_OWNER)==NULL){
        printf ("\n1");
    } else { printf ("\n2"); }
раскрою тему - я ищу окно игры GTA SanAndreas Multiplayer, заказ на него.
окно само называется GTA:SA:MP ищу его. находит. отсылаю клавишы.
C++
1
2
PostMessage(DeskriptorOkna, WM_KEYDOWN, 27, 1); // Esc, т.к. при сложенной игре игра уходит в эскейп
PostMessage(DeskriptorOkna, WM_KEYDOWN, 114, 1);
но клавиши так и не отсылаются... помогите, а...
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.03.2010, 13:52
ЭТо пробуй
0
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
21.03.2010, 14:43  [ТС]
разница небольшая, чесно сказать никакой...
похоже у меня не то окно найдено... т.к. ставлю окно, например, на оперу - всё ок, передаётся. нужна помощь с поиском окошечка фул скрин GTA:SA:MP
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.03.2010, 14:52
Ну я даже не знаю, что сказать.
Слушай, сперва попробуй найди идентификатор окна проверенными методами.

Скачай прогу, ссылку я давал установи её. И ищи с помощью неё хэендл окна. Потом вручную вводи его в свою прогу и смотри эффект. Хочу лишь напомнить тебе, что в той теме, на которую я указывал, я выяснил, что несчастный блокнотик создаёт аж целых 4 окошка! А все думают что оно одно и вводят заголовок окна и ошибаются. Так же и ты, ищешь по заголовку окна ("GTA:SA:MP" если я правильно понял, это заголовок), а не то.

...ТО есть я хочу сказать, что запросто может быть, что ты всё правильно находишь и шлёшь сообщение ФАКТИЧЕСКИ РАМКЕ ОКНА, которая называется "GTA:SA:MP", а ей всё равно
0
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
21.03.2010, 15:09  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Скачай прогу, ссылку я давал установи её.
эмм, ссылки что-то не нашёл, а в сети проги этой не вижу... кинь куда-нибудь её, пожалуйста.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.03.2010, 15:15
Да, я не выкладывал ссылку. На, держи.
Вложения
Тип файла: zip objectviewer.zip (173.0 Кб, 26 просмотров)
0
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
21.03.2010, 15:31  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Да, я не выкладывал ссылку. На, держи.
таак... отлично, спасибо, программу запустил. вот выбираю вкладку с названием "GTA:SA:MP"
там, я так понимаю, мне нужен (Handler) ? что с ним делать далее?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.03.2010, 15:47
Я бы на твоём месте открыл окошко "GTA:SA:MP" запустил бы прогу (там есть режим "РАзное"->"активный курсор") и курсором бы погонял над этим окном дабы убедиться в том, что сама надпись непосредственно "GTA:SA:MP" имеет один хэндл (в программе называется "указатель на память"), а то место НЕПОСРЕДСТВЕННО, куда тебе надо послать сообщение- другой хэндл.
НУ, или убедиться в обратном.

Это первое что надо выяснить
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.03.2010, 15:48
По поводу игр, не знаю, а вдруг игра пользуется системой DirectInput:
в обход стандартным Windows api.
Простые окна обмениваются с помощью SendMessage(..).
Если игра не использует DirectInput а использует стандартный api, тогда и SendMessege прокатит.
0
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
21.03.2010, 15:50  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Я бы на твоём месте открыл окошко "GTA:SA:MP" запустил бы прогу (там есть режим "РАзное"->"активный курсор") и курсором бы погонял над этим окном дабы убедиться в том, что сама надпись непосредственно "GTA:SA:MP" имеет один хэндл (в программе называется "указатель на память"), а то место НЕПОСРЕДСТВЕННО, куда тебе надо послать сообщение- другой хэндл.
НУ, или убедиться в обратном.

Это первое что надо выяснить
такс, а что мне делать, если игра фулл скрин?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.03.2010, 15:52
Честно говоря, я не знаю, что такое фулл скрин...
0
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
21.03.2010, 15:53  [ТС]
ну, всмысле, игра на весь экран. и я, соответственно, не вижу окна программы
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.03.2010, 16:01
Слушай, я этого не учёл. Тогда тебе таким образом, конечно, не найти хэндл окна игры. Извини, что зря потратил твоё время, я в игры просто не играю, короче, вот.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2010, 16:01
Помогаю со студенческими работами здесь

Побуквенный вывод слова через цикл + ожидания нажатия клавиши (после нажатия очистка и установка курсора на )
строку) Masm32 (com -программа) вообщем столкнулся с проблемой. к примеру ввожу ' LSD49 $' выводится через цикл loop (в ECX -...

По событию нажатия на кнопку вызвать функцию, в которой ждать нового нажатия на ту же самую кнопку
type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender:...

проверка нажатия
Добрый день, подскажите как проверить было ли нажатие мыши на объект?

Нажатия клавиш
В mfc нужно чтобы при нажатии клавиш, происходило действие. С помощью WM_KEYDOWN, пытался сделать, чтобы при нажатии клавиш программа...

Обработка нажатия
Есть игра (для сенсорных устройств), управление в которой осуществляется нажатием в определенную часть экрана. Есть кнопка...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru