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

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

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

Показать сообщение отдельно
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 ?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru