RE: Как активизировать окно 1с программно #164220


#0 by MMF
в продолжение закрытой ветки. Изваял компоненточку, работает код.  if IsIconic(wnd) then ShowWindow(wnd, SW_RESTORE);  if GetForegroundWindow = wnd then Exit  else      if not Result then
#1 by Волшебник
ссылку на прежнюю ветку дай
#2 by MMF
упс.
#3 by MMF
wnd - это:
#4 by smaharbA
А я просто все минимизирую и в 1С Сообщить...(конечно лажовенько но просто) Маладца Миша, че с сервисами сборолся ?
#5 by MMF
моего кода тут только оформление в ВК :-) а так все копи-пасте. Угу, с помощью гуру.
#6 by MMF
еще отмечу, что sleep(10000) нужен чтобы успеть переключиться на другое приложение/свернуть 1С при тестировании
#7 by smaharbA
... :)
#8 by romix
Проверил - работает в Windows XP SP2. Интересно, как 1С это удается? :-)
#9 by romix
(+8) А понял - A process can set the foreground window only if one of the following conditions is true: ... There is no foreground process.
#10 by romix
При помощи ВК, которая генерирует событие, можно еще так: UndoMinimizeALL нужно на случай, если все окна уже были свернуты - тогда почему-то не срабатывает. Компоненту, генерирующую событие, можно скачать по ссылке
#11 by romix
Проверил - работает. Предотвратить "упрыгивание" окна 1С при запуске WinRar другими средствами (SetForegroundWindow после CreateProcess) мне не удалось. Странно, неужели в виндах нету штатного средства, чтобы заставить фокус вернуться на активное приложение, а не упрыгивать на совершенно другое окно?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С