Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
 Аватар для Vlad_IT
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096

Сообщение через Handle

05.10.2010, 22:28. Показов 3675. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я знаю handle блокнота, и как мне туда послать сообщение что я нажал кнопку например 'W'? Скажите мне пожалуйста, буду очень благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2010, 22:28
Ответы с готовыми решениями:

Как отправить сообщение в окно через Handle
Как можно отправить запрос, а точнее сообщение другому окну, зная его HWND??? Добавлено через 46 секунд Вообще если я нажму на...

Как выбрать окно, если его handle не совпадает с handle процесса?
Добрый день! Задача на первый взгляд довольно простая: выбрать окно программы, переместить его в определённую часть экрана и нажать на...

Что означает выражение HANDLE hWritePipe = (HANDLE)atoi(argv[1]);
К тому же у меня нет 1-го. только нулевой

14
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
06.10.2010, 10:20
SendMessage
и вот тут почитать
http://msdn.microsoft.com/en-u... 14110.aspx
1
 Аватар для Vlad_IT
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
06.10.2010, 11:54  [ТС]
radiohobbyt, И что с помощью этого кода можно послать сообщения на другое окно? А как там окно вставить?

Добавлено через 3 минуты
Только там надо что-бы в окно которое в фокусе, а мне надо что-бы окно не было активно.
0
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
06.10.2010, 12:44
так
C
1
2
3
4
5
6
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
for(unsigned int i=0; i<255; i++)
{
SendMessage(hwnd, WM_CHAR, i, 0);
}
это я замусориваю блокнот всем что вижу. дальше сам придумай.
суть в том, что сообщения шлю не блокноту, а едиту- уго дочернему окну.
1
 Аватар для Vlad_IT
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
07.10.2010, 00:08  [ТС]
radiohobbyt, Спасибо отлично. Только я не смог вызвать функцию WM_KEYDOWN. Я только смог WM_CLOSE и WM_TEXT и WM_CHAR. Подскажите пожалуйста как мне вызвать сообщение WM_KEYDOWN, WM_KEYUP?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
07.10.2010, 10:52
Что бы не начинать новую тему хочу задать вопрочс по существу

C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
String dfg = "12345";
  for(int i=0; i<StrToInt(dfg.Length()); i++)
{
  SendMessage(hwnd, WM_CHAR, i, 0);
}
}
Не получается передать в блокнот 12345. Что не так в коде?

Заранее благодарен за ответ
0
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
07.10.2010, 11:22
C
1
2
3
4
5
6
7
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
char dfg[] = "12345";
  for(int i=0; i<5; i++)
{
  SendMessage(hwnd, WM_CHAR, dfg[i], 0);
}
я си лучше знаю. мне с чаром проще. под стринги сам какнить.
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
07.10.2010, 11:57
Спасибо.

Так это походу надо всегда символы передавать через цикл? А если мне к примеру нужно передать в блокнот очень длинный текст, то тогда как?
0
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
07.10.2010, 12:09
C
1
2
3
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
SetWindowText(hwnd, "большой и длинный текст");
но это не работает. хотя должно. закомменть вторую строку и увидишь(заголовок окна смотри)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
07.10.2010, 12:42
Цитата Сообщение от radiohobbyt Посмотреть сообщение
C
1
2
3
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
SetWindowText(hwnd, "большой и длинный текст");
но это не работает. хотя должно. закомменть вторую строку и увидишь(заголовок окна смотри)
Ну то, что заголовок окна поменялся об этом я знал.

А можно ликак то программно очистить блокот из своей программы?
0
 Аватар для Vlad_IT
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
07.10.2010, 12:44  [ТС]
Sasha, У меня вроде так получилось.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit";
SendMessage(hwnd, WM_CHAR, 'п, 0);
 
SendMessage(hwnd, WM_CHAR, р, 0);
 
SendMessage(hwnd, WM_CHAR, и, 0);
 
SendMessage(hwnd, WM_CHAR, в, 0);
 
SendMessage(hwnd, WM_CHAR, е, 0);
 
SendMessage(hwnd, WM_CHAR, т, 0);
Вроде так. Там можно как нибудь через цикл

Добавлено через 14 секунд
Sasha, У меня вроде так получилось.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit";
SendMessage(hwnd, WM_CHAR, 'п, 0);
 
SendMessage(hwnd, WM_CHAR, р, 0);
 
SendMessage(hwnd, WM_CHAR, и, 0);
 
SendMessage(hwnd, WM_CHAR, в, 0);
 
SendMessage(hwnd, WM_CHAR, е, 0);
 
SendMessage(hwnd, WM_CHAR, т, 0);
Вроде так. Там можно как нибудь через цикл
0
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
07.10.2010, 13:13
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
SendMessage(hwnd, EM_SETSEL, - 1, 0);
SendMessage(hwnd, EM_REPLACESEL, 1, (LPARAM)"я длинный текст, меня можно добавить");
}
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)"я длинный текст, останусь только я");
}
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
HANDLE hwnd=FindWindow("Notepad", NULL);
hwnd=FindWindowEx(hwnd, NULL, "Edit", NULL);
SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)"");//вроде как чистилка
}
ответ вроде как всем. смотрите.
2
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
07.10.2010, 13:18
(Уже опоздал, пока разные варианты пробовал.)
Цитата Сообщение от radiohobbyt Посмотреть сообщение
но это не работает. хотя должно.
SetWindowText Function
To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText.
C
1
2
3
HWND hwnd = FindWindow("Notepad", NULL);
hwnd = FindWindowEx(hwnd, NULL, "Edit", NULL);
SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)"большой и длинный текст");
1
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
07.10.2010, 13:27
ХАХА! я всетаки умный!!!!
нет, я всетаки быстрый!!!!!
0
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 14
26.05.2013, 22:46
Ребята как сымитировать нажатие клавиш Enter, Delete, backspace а также комбинации CTRL + C/V , ALT + SHIFT , SHIFT + "цифра".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2013, 22:46
Помогаю со студенческими работами здесь

Приципится к потоку через Handle
Как известно, работать с потоком (Thread) напрямую, зная его ID, нельзя. Надо прицепиться к нему через хэндл. В ВиндоусМЕ есть такая...

Цвет текста в Memo через Handle?
Вот вопрос как поменять цвет текста в Memo зная только Handle SetTextColor(GetDC(Мемо1.Handle), clRed) не помогает. Или чтото делаю...

Ошибка в window.captureEvents(Event.CLICK); window.onClick= handle; function handle(e) { alert(''); return false; }
&lt;script&gt; window.captureEvents(Event.CLICK); window.onClick= handle; function handle(e) { alert(''); return false; } ...

Application.Handle выдает identifier idents no member "Handle", на Дельфи всё работает
Не компилируется к примеру код: begin MessageDlg('Уже поздно. Будь послушным мальчиком. '+ 'Туши свет и вали спать!',...

Handle
Всем привет. Поделитесь пожалуйста, как правильно создавать handle для структур данных. К примеру у меня есть 6 одинаковых структур...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru