У меня есть программа app1, которая запускает другое приложение, используя:
app2Server := CreateOleObject('app2.Server');
В некоторых случаях она передает данные и управление в app2, вызывая процедуру app2Server.SendData, а затем вызывает app2Server.TopMost и устанавливает переменную dataSent = True
Когда пользователь возвращается в app1, событие Form1.OnPaint проверяет, является ли dataSent = True, а затем получает некоторые данные из app2.
В основном на Windows7 шаг 2 не работает.Мне кажется, что в Window7 не работают две вещи: OleObject app2 не установлен в TopMost и форма app1 не рисуется (после первоначального создания).
Это известная проблема с Win7и если да, то может ли кто-нибудь предложить способ
- Установить мое приложение 2 как TopMost и
- Получить форму моего приложения 1, чтобы распознавать, когда оно вернется в режиме реального времени.
Большое спасибо
Редактировать: Чтобы изменить Z-порядок app1 и app2, я использую следующее:
SetWindowPos(Form1.Handle,HWND_BOTTOM,0,0,0,0,swp_NOMOVE or swp_NOSIZE);
app2Server.TopMost;
Не похоже, что они работают.
ps Я унаследовал этот код, мне просто нужно, чтобы он работал:)