Вывод окна приложения на передний план.

Здравствуйте!
Проблема собственнов следующем:
Прога1 и Прога2 связаны внешним СОМ-сервером. В какой-то момент
работы в проге1 нужно безболезненно перейти в прогу2.
Используется следующий механизм: вызывается метод СОМ-сервере,
Старт_прога2. Который проверяет наличие такой проги среди загруженных
и если есть, то окно проги выводит на передний план
(SetForegroundWindow).
Один раз срабатывает, а потом уже не хотит. Может быть дело в том,
что СОМ-сервер используется обоими прогами и при выводе второй на
передний план система не может его вывести, т.к. используется что-то
общее?
Посоветуйте как сделать.
Здравствуйте, Шистеров.
Tuesday, February 7, 2006, 11:24:59 AM, you wrote:
Не совсем понял сценарий. Значит, прога1 вызывает прогу2 через
СОМ-сервер, и эта прога2 становится "передней". То есть, ловится хэндл
главного окна проги2 и он передается в SetForegroundWindow. А что
потом происходит? В следствии чего окно проги2 перестает быть
передним?
Я два варианта вижу: 1) Какое-либо другое окно преобретает стиль
StayOnTop и 2) У вас хэндл окна проги2 вычисляется задолго до вызова
SetForegroundWindow. Ведь возможна такая модель:
Запустили прогу2
Нашли ее хэндл (h2)
Вывели окно проги2
.........................................
. какой-то вычислительный процесс, ..
.. во время которого прога2 вообще ..
.. могла закрыть и открыть вновь ..
.. свое окно ..
.........................................
Point1:
Пытаемся опять по хэндлу h2 вывести окно проги2 вперед.
Ну так в точке Point1 этой модели h2 корректно по значению, но окна с
таким хэндлом (читайте, номером) нет, если оно успело закрыться и
открыться.