powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подтвердить диалоговое окно не активируя его
10 сообщений из 10, страница 1 из 1
Подтвердить диалоговое окно не активируя его
    #33871585
Фотография Danilo K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли подвердить диалоговое окно сторонней програмы
пока то находится на заднем плане?
Пробовал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 * нахожу хэндл кнопки "OK" пытаюсь имитировать клик:
    Call SendMessage(hBTOK, WM_LBUTTONDOWN, 0&, 0&)
    Call SendMessage(hBTOK, WM_LBUTTONUP, 0&, 0&)
    - нольэмоций
 * пробовал слать клавишу энтер (слал и кнопке и самой форме)
    Call SendMessage(hBTOK, WM_CHAR, 13&, 0&)
    - тоже нифига

Может существует какой-нибудь message, который
подтверждает форму. Типа "закрыть с утвердительным ответом"?
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33872030
Armenj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если эмулируешь клик, то форма должна быть поверх других, если это диалог то попробуй найти hwnd form-и и SendMessage(hwnd, WM_CLOSE, 0&, 0&)
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33872092
Фотография Danilo K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArmenjЕсли эмулируешь клик, то форма должна быть поверх других
Это что - такое обязательное условие? Иначе клик нельзя сэмулировать?

Armenjесли это диалог то попробуй найти hwnd form-и и SendMessage(hwnd, WM_CLOSE, 0&, 0&)
Hwnd я, ясное дело, знаю - иначе и hwnd кнопки не смог бы найти.
WM_Close я тоже делал, да только форма закрывается, как буд-то бы нажали
"Отмена", а не "Ок". А мне нужно именно подтверждение.
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33872219
Armenj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для клика обязательно, если по дефаулту нужная тебе кнопка можешь попробовать так
Код: plaintext
1.
2.
3.
    Call SetForegroundWindow(dlgHwnd)
    SendKeys "{ENTER}", True
    Call SendMessage(dlgHwnd, WM_KEYLAST,  0 &,  0 &)
у меня этот вариант работает, с кликом тоже можешь попробовать SetForegroundWindow
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33872220
Armenj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал вот такой вариант тоже работает:
Код: plaintext
1.
2.
3.
4.
5.
    Call SetForegroundWindow(dlgHwnd)
Call SendMessage( 10588 , WM_SETFOCUS,  0 &,  0 &)
    SendKeys "{ENTER}", True
    Call SendMessage(dlgHwnd, WM_KEYLAST,  0 &,  0 &)

...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33872221
Armenj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Call SendMessage(btnHwnd, WM_SETFOCUS, 0&, 0&)
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33872418
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Const BM_CLICK = &HF5 
SendMessage hButton, BM_CLICK,  0 &,  0 &
Работает даже для "запрещенных" и скрытых кнопок.
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33872526
Armenj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да так намного лучше.
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33874995
Фотография Danilo K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Letter_D
Код: plaintext
1.
Const BM_CLICK = &HF5 
SendMessage hButton, BM_CLICK,  0 &,  0 &
Работает даже для "запрещенных" и скрытых кнопок.
О! Офигенно!!! Здорово - именно то, что нужно!
Вот мазафака! А че это ни в документации не описано,
ни в WIN32API.TXT нет!? Как о них ваще узнавать - о таких хитрых константах?
...
Рейтинг: 0 / 0
Подтвердить диалоговое окно не активируя его
    #33875050
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все описано. Выкинь свой WIN32API.TXT и ходи на MSDN (или выкачай себе PSDK).
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/buttons/buttonreference/buttonmessages/bm_click.asp
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подтвердить диалоговое окно не активируя его
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]