powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ответить на диалоговое окно
7 сообщений из 7, страница 1 из 1
Ответить на диалоговое окно
    #35387304
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня ситуация следующая:
есть приложение, которое использует Exel-таблицу для хранения данных.
Я написал форму, которая работает с инфой в таблице.
По закрытию интерфейса приложение видит, что данные в таблице изменились, и через какое-то время (в течении которого напряженно думает), выдает диалоговое окно, на котором нужно нажать ок, чтоб подтвердить изменения.
Задача: программно нажать на ок, чтоб пользователь окна не наблюдал.
Сделал тестовый маленький файл с командой SendKeys "{ENTER}", но работает через раз, а в большом рабочем файле пару раз сработало, а потом перестало.
Посоветуйте, пжлуста, как можно отследить, когда появляется это окно, и послать ему, именно ему родному - че-нить, чтоб оно было довольно?
Прочитал про комманды FindWindow, hwnd, BM_CLICK, и др., но как это работает, очень туго понимаю, тем более с английским напряженка...
...
Рейтинг: 0 / 0
Ответить на диалоговое окно
    #35387361
ВasiС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ActiveWorkbook.Save ?
...
Рейтинг: 0 / 0
Ответить на диалоговое окно
    #35387378
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВasiСActiveWorkbook.Save ?

Это есть, вот код закрытия.
После выгрузки UserForm2 появляется диалоговое окно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Function CloseANDExit()
Dim oWB As Excel.Workbook
ThisApplication.SilentOperation = True
Set oWB = oWS.Parent
oWB.Save
oWB.Close
oExcelApp.Quit
Set oExcelApp = Nothing
oFactory.Parent.Update
ThisApplication.SilentOperation = False
UserForm2.Hide
Unload UserForm2
End Function
...
Рейтинг: 0 / 0
Ответить на диалоговое окно
    #35389629
ВasiС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо между
Код: plaintext
oWB.Save
и
Код: plaintext
Unload UserForm2 
в открытой книге что-то изменяется, поэтому и появляется окно с предложением сохранить изменения.

хотя после этого:
Код: plaintext
1.
2.
oWB.Close
oExcelApp.Quit
Set oExcelApp = Nothing
в принципе Эксель должен быть убит...
А скриншот окна можно?
...
Рейтинг: 0 / 0
Ответить на диалоговое окно
    #35389882
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Application.DisplayAlerts =False
и не будет никаких вопросов от экселя.
...
Рейтинг: 0 / 0
Ответить на диалоговое окно
    #35396805
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВasiСВидимо между
Код: plaintext
oWB.Save
и
Код: plaintext
Unload UserForm2 
в открытой книге что-то изменяется, поэтому и появляется окно с предложением сохранить изменения.

хотя после этого:
Код: plaintext
1.
2.
oWB.Close
oExcelApp.Quit
Set oExcelApp = Nothing
в принципе Эксель должен быть убит...
А скриншот окна можно?

big-duke Application.DisplayAlerts =False
и не будет никаких вопросов от экселя.


Эксель есть убит, окно не Экселя, а приложения, которое его использует
...
Рейтинг: 0 / 0
Ответить на диалоговое окно
    #35402892
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось погасить окно так:
Код: plaintext
1.
AppActivate ThisApplication.Caption, True
SendKeys "{ENTER}", True
А как можно отловить само окно, независимо от активности приложения?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ответить на диалоговое окно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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