Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
#1

Эмуляция нажатий клавиш или автоматический ввод информации - C++

25.08.2013, 16:12. Просмотров 2406. Ответов 17
Метки нет (Все метки)

Добрый день. Мне необходимо чтобы в определенную форму ввелся пароль. Форма является изначально активной, то есть фокус находится на ней. Как сэмулировать нажатие клавиш пароля или мгновенные его ввод в форму? Пароль получается через "cout" и хранится в строке.
Используется MVS 2010 C++. Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 16:43     Эмуляция нажатий клавиш или автоматический ввод информации #2
SendInput
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.08.2013, 17:23  [ТС]     Эмуляция нажатий клавиш или автоматический ввод информации #3
Цитата Сообщение от Nekto Посмотреть сообщение
SendInput
SendInput требует код буквы, а не саму букву. Как с этим быть?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 20:24     Эмуляция нажатий клавиш или автоматический ввод информации #4
Цитата Сообщение от florgas Посмотреть сообщение
SendInput требует код буквы, а не саму букву. Как с этим быть?
В смысле? Ты же обычные чары хочешь пихать. Они за собой и хранят код (48 (0х30) для '0', и т.д.).
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
25.08.2013, 20:27     Эмуляция нажатий клавиш или автоматический ввод информации #5
Цитата Сообщение от florgas Посмотреть сообщение
SendInput требует код буквы, а не саму букву.
Т.е. у буквы нет кода?
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.08.2013, 21:41  [ТС]     Эмуляция нажатий клавиш или автоматический ввод информации #6
Можно пример использования?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
25.08.2013, 21:46     Эмуляция нажатий клавиш или автоматический ввод информации #7
http://batchloaf.wordpress.com/2012/...ing-sendinput/
http://batchloaf.wordpress.com/2013/...cus-c-program/
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 21:55     Эмуляция нажатий клавиш или автоматический ввод информации #8
Цитата Сообщение от florgas Посмотреть сообщение
Можно пример использования?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <windows.h>
#include <string>
 
int main()
  {
  std::string string("Let's print this in notepad");
  SetForegroundWindow(FindWindow(NULL, "Untitled - Notepad"));
  INPUT ip;
  ip.type = INPUT_KEYBOARD;
  ip.ki.time = 0;
  ip.ki.dwFlags = KEYEVENTF_UNICODE;
  ip.ki.wVk = 0;
  ip.ki.dwExtraInfo = 0;
  for (size_t i=0;i<string.size();++i)
    {
    ip.ki.wScan = string[i];
    SendInput(1, &ip, sizeof(INPUT));
    Sleep(100);
    }
  return 0;
  }
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.08.2013, 21:57  [ТС]     Эмуляция нажатий клавиш или автоматический ввод информации #9
Цитата Сообщение от Nekto Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <windows.h>
#include <string>
 
int main()
  {
  std::string string("Let's print this in notepad");
  SetForegroundWindow(FindWindow(NULL, "Untitled - Notepad"));
  INPUT ip;
  ip.type = INPUT_KEYBOARD;
  ip.ki.time = 0;
  ip.ki.dwFlags = KEYEVENTF_UNICODE;
  ip.ki.wVk = 0;
  ip.ki.dwExtraInfo = 0;
  for (size_t i=0;i<string.size();++i)
    {
    ip.ki.wScan = string[i];
    SendInput(1, &ip, sizeof(INPUT));
    Sleep(100);
    }
    return 0;
  }
"Untitled - Notepad" - это что здесь значит?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 22:00     Эмуляция нажатий клавиш или автоматический ввод информации #10
Цитата Сообщение от florgas Посмотреть сообщение
"Untitled - Notepad" - это что здесь значит?
Название окна.
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.08.2013, 22:59  [ТС]     Эмуляция нажатий клавиш или автоматический ввод информации #11
error C2664: 'FindWindowW' : cannot convert parameter 2 from 'const char [19]' to 'LPCWSTR'
Как решить проблему?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
25.08.2013, 23:00     Эмуляция нажатий клавиш или автоматический ввод информации #12
Цитата Сообщение от florgas Посмотреть сообщение
Как решить проблему?
Отключи UNICODE в проекте.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 23:05     Эмуляция нажатий клавиш или автоматический ввод информации #13
Цитата Сообщение от florgas Посмотреть сообщение
Как решить проблему?
Использовать неюникодный FindWindow, как вариант.
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.08.2013, 23:13  [ТС]     Эмуляция нажатий клавиш или автоматический ввод информации #14
Разобрался чуть-чуть. Еще вопрос: как после всего этого сэмитировать нажатие enter?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2013, 23:25     Эмуляция нажатий клавиш или автоматический ввод информации
Еще ссылки по теме:
C++ Ввод информации в структуру и поиск элемента по информации, находящейся в этом же элементе
Автоматический ввод в структуру C++
C++ Ввод информации и вывод информации на экране
C++ Переделать программу под автоматический ввод

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
25.08.2013, 23:25     Эмуляция нажатий клавиш или автоматический ввод информации #15
Цитата Сообщение от florgas Посмотреть сообщение
Еще вопрос: как после всего этого сэмитировать нажатие enter?
Ты такие вопросы будешь задавать пока всю программу не напишешь? Изучай документацию, там все сказано.
Yandex
Объявления
25.08.2013, 23:25     Эмуляция нажатий клавиш или автоматический ввод информации
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru