|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.04.2013, 09:21 | #1 |
Регистрация: 16.08.2011
Сообщений: 3
|
Handle окон Outlook. Некорректная работа.
Добрый день. Буду рад услышать мнение по нижеописанной проблеме.
Работа ведется в Access 2007 и Outlook 2007. В аксессе открываются формы, им устанавливается setwindowpos hwnd_topmost -1. Их может работать несколько штук одновременно. Все отлично работает. Затем мне необходимо было, чтобы из Аксесса формировалbсь письма Аутлук(с одинаковой темой), и отображалbсь поверх всех форм, даже тех которые отобразились ранее(как я описал) с возможностью переключения между формами и письмами, причем активное окно должно быть поверх всего. Задачу решил перебором всех открытых окон, с определением handle по части заголовка письма и устанавливал окнам с этим handle hwnd_topmost -1. Все отлично работает, !НО с одним косяком: по окончании работы(отправка писем, или закрытие аксесса) обнаружилось, что Outlook продолжает новые сообщения или сообщения открытые в отдельном окне отображать с параметром hwnd_topmost -1, что очень неудобно для пользователя - окно убирается только сворачиванием, переключением фокуса(активацией другого окна) оно не убирается. Мои гипотезы: 1)при закрытии определенных писем, или их отправке, их Хэндл может назначаться другим письмам, а свойства этого Хэндла сохраняется, что и приводит к отображению поверх всех. 2) мой код "цепляет" другие хэндлы помимо целевых(по теме письма), которые учавствуют в работе Outlook и ставит их поверх всех. соответственно вопросы. Какая из гипотез похожа на правду и как решить? Если есть другое решение или варианты возникновения/устранения проблемы - вы очень поможете) Код прилагаю Код:
Последний раз редактировалось c-net; 02.04.2013 в 12:53. |
05.04.2013, 10:05 | #2 |
Регистрация: 16.08.2011
Сообщений: 3
|
сейчас попробую реализовать промежуточное решение: при выходе икать окна по классу rctrl_renwnd32 (класс сообщений Outlook) и выставлять необходимые параметры.
следующим шагом буду думать как при работающем аксессе находить сообщения которые уже отправлены(возможно по записи хэндла в доп. таблицу) и по таймеру назначать параметры. по выполнению отпишусь может кому понадобится. |
05.04.2013, 10:27 | #3 |
Регистрация: 16.08.2011
Сообщений: 3
|
вот промежуточное решение про которое я писал выше.
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Некорректная работа кода [C++] | madmaniac | Помощь студентам | 1 | 10.03.2012 15:50 |
Некорректная работа программы... | HyperZen | Общие вопросы Delphi | 2 | 03.07.2011 10:46 |
Список открытых окон (Handle) | Paul Hindenburg | Фриланс | 4 | 08.10.2010 13:04 |
Как узнать Handle всех окон с заданным названием? | Ga-sergey | Win Api | 3 | 24.05.2010 23:35 |
Некорректная работа Ucoz.ru | docbrain | WordPress и другие CMS | 7 | 31.03.2010 11:26 |