Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
10 / 8 / 1
Регистрация: 21.09.2010
Сообщений: 35

имитировать нажатие кнопки "OK" в ShowMessage

28.10.2010, 03:46. Показов 3808. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!)
Подскажите пожалуйста, можно ли программно нажать кнопку "OK" в ShowMessage? если да, то как это сделать?

Добавлено через 2 часа 41 минуту
нужно показать сообщение и тут же его закрыть, нажав ОК... пыталась сделать так безрезультатно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ShowMessage("Mes");
CloseMes();
...
 
void TForm1::CloseMes()
{
 HWND HBut;
 bool find = false;
 HWND H1 = Form1->Handle;
 
 while (find!=true)
       {
       HWND H2 =FindWindow(0,"MyForm");
       if (H2!=H1)
          {
          HBut = FindWindowEx(H1,0, 0,MB_OK); // или HBut = FindWindowEx(H1,0, 0,"OK");
          SendMessage(HBut, BM_CLICK, 0, 0);
          find=true;
          }
       }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2010, 03:46
Ответы с готовыми решениями:

Как имитировать нажатие Ctrl+C при нажатии кнопки
Как по срабатыванию события (к примеру нажатие горячей клавиши) в окне, в котором я нахожусь вызвать копирование (т.е. имитировать нажатие...

Имитировать нажатие кнопки
Всем добрый вечер. Туплю пострашному, не могу понять в чём проблема. Надо, чтобы при нажатие баттон2 происходило некое действие, но выдаёт...

Нужно имитировать нажатие кнопки
День добрый! Задачка вроде бы кажется простой, но что-то не получается её решить. Заключается в следующем: Есть 2 базы...

6
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
28.10.2010, 05:45
советую использовать вещи по назначению... и не использовать не по назначению

просто создайте еще одну форму и подгоните ее под размеры окна ShowMessage, ну и кнопку ОК для красоты можете кинуть.
либо еще проще киньте на основную форму Panel, приукрасьте как Вам надо и затем играйтесь с его свойством Visible
0
10 / 8 / 1
Регистрация: 21.09.2010
Сообщений: 35
28.10.2010, 10:43  [ТС]
Спасибо за совет конечно, но мне нужно сделать, именно то, что нужно сделать, другие варианты не подходят.. и я знаю что это возможно, но у меня не получается
0
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
28.10.2010, 10:53
_Cat, можно попробовать запустить CloseMes в другом потоке.
Причем, сначала запустить поток, а потом - SendMessage
В твоем коде CloseMes получает управление только когда сообщение закроется.
1
10 / 8 / 1
Регистрация: 21.09.2010
Сообщений: 35
28.10.2010, 11:04  [ТС]
Цитата Сообщение от Day Посмотреть сообщение
В твоем коде CloseMes получает управление только когда сообщение закроется.
а ведь действительно, что-то не подумала об этом О_о ... спасибо!).. видимо придется как-то вообще без ShowMessage обойтись =\.. т к далеко не один раз в приложении придется так делать, будет слишком муторно каждый раз такое проделывать
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
28.10.2010, 11:09
Можно поступить следующим образом
C++
1
2
3
4
5
6
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    keybd_event(VK_RETURN, 0, 0, 0);
    ShowMessage("asd");
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
}
Только лично я не понял зачем показывать ShowMessage() чтобы потом его сразу же закрыть...
1
10 / 8 / 1
Регистрация: 21.09.2010
Сообщений: 35
28.10.2010, 11:22  [ТС]
Спасибо попробую!)

Цитата Сообщение от Inadequate Посмотреть сообщение
Только лично я не понял зачем показывать ShowMessage() чтобы потом его сразу же закрыть...
Вот если б я понял зачем, то так бы не делала ни за что.. но проблема возникла мне непонятная, тут описана Socket->SendText... нужно было срочно её решить.. теперь уже не срочно, поэтому скорее всего в первичной проблеме буду разбираться))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2010, 11:22
Помогаю со студенческими работами здесь

Как имитировать нажатие кнопки
Существует ли способ в функции имитировать нажатие определенной кнопки?

error C3728 , пытаюсь имитировать нажатие кнопки
error C3728: 'event System::EventHandler ^System::Windows::Forms::Control::Click': event does not have a raise method не даёт сделать...

Как программно имитировать нажатие кнопки TBCButton?
Для имитации нажатия обычных кнопок типа TBitBtn используются вот такие процедуры: // Нажатие. procedure TForm1.FormKeyDown(Sender:...

Имитировать нажатие кнопки мыши на странице загруженной в TChromium
Существует процедура: procedure SendMouseClickEvent(const event: PCefMouseEvent; kind: TCefMouseButtonType; mouseUp: Boolean;...

Имитировать нажатие на кнопки на странице через скрипт tampermonkey
Если на странице https://edr-info.com/ru/customer-search в самом низу нажать "Поиск", то появляется список предпринимателей. Адрес...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru