![]() |
:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки :: | ![]() |
![]() |
Л и с о в о д ы в с е х с т р а н, о б ъ е д и н я й т е с ь !!! |
Как вывести приложение на передний план | ||
---|---|---|
Вопрос
Как вывести на передний план и активизировать окно нужного приложения. Это может быть окно Word, или ранее запущенное приложение FoxPro, или форма для ввода логина и пароля в приложении FoxPro (иногда она не выводится на передний план) Ответ Идея решения принадлежит Вадиму Пирожкову (piva) Для вывода окна любого приложения на передний план, необходимо знать текст заголовка нужного окна.
Метод loShell.AppActivate() выполняет поиск приложения по первым символам заголовка нужного окна и активизирует его, что сопровождается выводом окна на передний план. Если указанного окна обнаружить не удалось, то данный метод вернет .F., но никакого сообщения об ошибке не будет. Проблема в том, что метод loShell.AppActivate() выводит приложение на передний план "как есть". Например, если приложение было свернуто (минимизировано), то оно, конечно, будет активизировано. Но активизировано в том же, свернутом, состоянии. Чтобы приложение развернуть на весь экран необходимо выполнить некоторые манипуляции в самом приложении. Нажать некую последовательность клавиш. Вот именно этим и занимается метод loShell.SendKeys() - посылает в активное приложение некоторый набор кодов клавиш. В данном случае набор посылаемых клавиш основан на том факте, что большинство приложений имеет системное меню, которое вызывается комбинацией клавиш "ALT+пробел". Это системное меню раскрывается также по нажатию клавиши мыши в левом верхнем углу приложения на иконке самого приложения. Данное меню содержит пункты по управлению размером и положением окна. Причем самый первый пункт этого меню "Восстановить". Этот пункт (поскольку он первый) автоматически становится активным при открытии меню. Остается только нажать клавишу Enter для его выбора. Вот именно эта последовательность клавиш - ALT+пробел+ENTER - и зашифрована в параметре метода
Если Вы уверены, что активизируемое Вами приложение находится в "нормальном", развернутом состоянии, то вызывать метод loShell.SendKeys() нет необходимости. Также вызывать именно эту последовательность нажатия клавиш не имеет смысла, если приложение не имеет стандартного системного меню. В FoxPro подавить активизацию системного меню можно, например, установив свойство
Условное обозначение кодов клавиш, используемых в методе SendKeys(), приведено в следующей таблице
Все прочие клавиши в методе SendKeys() выводятся как буквы соответствующих клавишь или их ASCII-коды в функции Chr(). Например, вместо символа "~" можно указать код chr(13) или {ENTER}
Как вывести на передний план текущее приложение FoxPro В этом случае, заголовком приложения является значение свойства _SCREEN.Caption
В данном случае, как раз нет смысла использовать метод SendKeys() в силу того, что нужное Вам окно заведомо находится в нужном состоянии. Как вывести на передний форму со свойством Form.ShowWindow = 2 - As Top-Level Как правило, такие формы используются для ввода логина и пароля пользователя при открытии приложения. Однако, по умолчанию, на передний план выводится окно собственно среды FoxPro (_SCREEN), если до вызова формы была предпринята попытка активизировать основное окно FoxPro или сделать в него вывод какой-либо информации. Поэтому, зачастую, форма для ввода логина и пароля открывается, но на передний план не выводится. В этом случае, в качестве заголовка окна используется заголовок формы.
В данном случае, как раз нет смысла использовать метод SendKeys() в силу того, что нужное Вам окно заведомо находится в нужном состоянии. Как вывести на передний план приложение Word или Excel в котором сформировали отчет Довольно распространенный способ формирования отчетов - это прямое заполнение документов в Word или Excel. Естественно, после формирования отчета хотелось бы вывести его на передний план. Приложение Word
Приложение Excel
Однако в отношении Word или Excel есть специфический способ активизации, основанный на том, что разворачивание этого окна на максимум из свернутого (минимизированного) состояния автоматически приводит к его активизации. Приложение Word
Приложение Excel
В качестве констант для сворачивания и разворачивания Excel можно также использовать значения 1 и 2 из набора констант Word. Исправлено 3 раз(а). Последнее : Владимир Максимов, 17.06.07 16:35 ![]() |
||
Тема | Просмотров | Написано | Написано |
---|---|---|---|
![]() |
5547 | Владимир Максимов | 01.03.05 22:02 |
![]() ![]() |
9761 | Владимир Максимов | 22.03.05 10:41 |
![]() ![]() |
13943 | Владимир Максимов | 20.04.05 18:31 |
![]() ![]() |
15760 | Владимир Максимов | 01.05.05 12:17 |
![]() ![]() |
9699 | Владимир Максимов | 25.09.05 13:31 |
![]() ![]() |
7873 | Владимир Максимов | 22.02.06 22:00 |
![]() ![]() |
18003 | Владимир Максимов | 04.03.07 14:17 |
![]() ![]() |
10722 | Владимир Максимов | 25.02.08 18:32 |
© 2006 Fox Club  |