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

Имитация клавишь в другом окне - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Условия остановки цикла http://www.cyberforum.ru/cpp-beginners/thread97223.html
А как задать условие для: 1) Допустим идет цикл вычислений. Необходимо прервать вычисления при условии, что 3 последних вычислений будут совпадать с точностью до 6-ти знаков после запятой. Например у нас есть ряд ответов 1,2569874 1,1235646 1,12356874 1,12356882 1,12356814 тут программа прервет вычисления потому что 3 последних ответа одинаковы до 6-ти знаков после запятой. 2) Условия для...
C++ Работа с файлами помогите написать программу на си !Которая считывает текст из файла и выводит на экран предложения не содержащие запятых. http://www.cyberforum.ru/cpp-beginners/thread97216.html
C++ Замены в файле.
Заменить в файле все заглавные буквы строчными, подсчитать кол.-во замен и вывести в файл. Т.е. я создаю Файл1, записываю в него разные слова (или набор букв), хоть с маленькой, хоть с большой, при чем в несколько строчек; при выполнении программы получаю Файл2, где написано кол.-во замен и выведены уже заглавные буквы также построчно.
Матрицы в Turbo C. C++
Написать программу выполняющую операцию 4А-5B+C. Элементарные операции с матрицами (умножение матрицы на число, транспонирование матрицы, сложение 2 матриц) оформить в виде функций. Полученную матрицу вывести на экран. Т.Е. чтобы я мог вводить с клавиатуры матрицу A, B, C и программа подситывала общую матрицу и выводила ее.
C++ перегрузка операций и функций http://www.cyberforum.ru/cpp-beginners/thread97205.html
Выполнить перезагрузку перечисленных операций,закрепив за ними соответствующий функциональный смысл. шестнадцатеричное число-сложение,умножение,разность двух шестнадцатеричных чисел!помогите пожалуйста
C++ Динамическое выделение памяти для массива Кто может помочь решить задачу. Для заданного двумерного массива из n строк и m столбцов вывести на экран следующее меню операций: 1. Динамическое выделение памяти для двумерного массива 2. Ввод элементов массива с клавиатуры 3. Заполнение массива случайными числами 4. Сортировка элементов массива (по вариантам) 5. Вывод элементов массива на экран 6. Освобождение памяти, выделенной для... подробнее

Показать сообщение отдельно
Deimon
35 / 35 / 2
Регистрация: 29.08.2009
Сообщений: 178
21.02.2010, 01:32  [ТС]     Имитация клавишь в другом окне
Цитата Сообщение от DeadRipper Посмотреть сообщение
проще всего - найти его функцией FindWindow("Notepad",0);
Что программа должна сделать при этом ? она находит окно с таким именем ? (тоесть мне надо создать блокнот с именем "notepad" ? Но в этом случае окно у меня называется "notepad - Блокнот") Или это название Блокнота програмно?

На эту часть кода у меня С++ не ругается. Окно блокнота должно ставновиться активным после исполнения этой части кода ?



Цитата Сообщение от DeadRipper Посмотреть сообщение
слать туда символы через SendMessage(hwnd,WM_CHAR,'СИМВОЛ',0,0);
Здесь у меня программа заругалась. Пришлось поменять "hwnd" на "HWND_BROADCAST" и в конце убрать один ноль. получилось:
C++
1
SendMessage(HWND_BROADCAST, WM_CHAR, 32, 0);
Вообщем... программа в итоге запустилась с кодом
C++
1
2
3
4
5
6
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
FindWindow("notepad - Блокнот",0);
 
SendMessage(HWND_BROADCAST, WM_CHAR, 32, 0);
}
но не чего не осуществила.
П.С. Блокнот был открыт

Добавлено через 33 минуты
Вот еще пищя для размышления
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
FindWindow("notepad - Блокнот",0);
SendMessage(FindWindow("notepad - Блокнот",0), WM_CHAR, 34, 0);
SendMessage(HWND_BROADCAST, WM_CHAR, 34, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyPress(TObject *Sender, wchar_t &Key)
{
if (Key == 34) { Memo1->Text= (Memo1->Text)+1; }
}
//---------------------------------------------------------------------------
Результат: в Memo1 с заданным периодом приписывается "1" .. даже если окно программы не выделено, работа продолжается (работает в фоновом режиме). Тоесть код впринципе рабочий, и действительно происходит имитация нажатия клавиши. Мне кажется, либо SendMessage не может отправить в "соседнее окно" что-то, либо неправильно отправляется.
П.С. Может гдето галочки поставить или выставить true ?
 
Текущее время: 05:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru