Форум программистов, компьютерный форум 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
 Аватар для Deimon
34 / 34 / 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 ?
 
Текущее время: 21:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru