|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Delphi+AutoCAD. Переключение между приложениями.
Программирую под AutoCAD и не только.
г. Пермь
Регистрация: 29.06.2005
Сообщений: 4
|
||
Просмотров: 6026
|
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
SetForegroundWindow вообще-то работает надежно (если правильно передан номер окна). Но окно приложения еще может быть и свернуто, поэтому фокус может быть на нем, а окна на десктопе не быть. Надо заботиться и о восстановлении размеров.
Если же используются компоненты для сохранения-восстановления размера и положения окна, то могут влиять и они. Запомнят, что окно было свернуто, а потом, при установке фокуса, восстанавливают свернутость. А если непонятно что - запуск с трассировкой. |
|||
![]() |
|
||||
Программирую под AutoCAD и не только. Регистрация: 29.06.2005
г. Пермь
Сообщений: 4
|
Цитата:
Приложение, которое передает на панели задач "вдалено", а получившее моргает синим. Тут подумал, а я ведь не напрямую передаю управление, а использую связующий СОМ-сервер, может он мешает приложениям отдать фокус? |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
У меня есть несколько автономных программ (см. http://www.kurganobl.ru/cad/docs.jsp?tn=documents ), в которых используется вырезка иллюстраций к XML- меню из окон других приложений. Приложений может быть много открыто, поэтому используется ListView для выбора требуемого:
Код:
Эта же форма вызывается из COM-сервера, запускаемого из-под Автокада. Эффект то же. Только окно самого Автокада свернуть в этот момент нельзя - оно заблокировано модальным диалогом. Хотя переключиться в него через щелчок на панели можно (через Alt-Tab нельзя), и оно не будет перекрыто диалогом. Делаю вывод, что свое приложение надо не только фокусировать, но и восстанавливать. То же самое надо делать и с Автокадом, если удастся запустить немодальный COM из Автокада. |
|||
![]() |
|
||||
Программирую под AutoCAD и не только. Регистрация: 29.06.2005
г. Пермь
Сообщений: 4
|
Еще одно... Если в системе запущено несколько AutoCAD-ов, а мне известен Хэндл нужного, как мне получить именно этот объект?
Сейчас использую следующую конструкцию: Код:
Необходимо не только переключиться окнами, но и послать команду: Код:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
|
|||
![]() |
|
||||
Программирую под AutoCAD и не только. Регистрация: 29.06.2005
г. Пермь
Сообщений: 4
|
Цитата:
Обидно конечно, когда на вопрос тебя посылают купить книжку, а там посмотрим. А все-таки, народ, кто работал с СОМ-технологией, как найти конкретный СОМ-объект, что для этого нужно? |
|||
![]() |