AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.05.2009, 18:41   #1  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
При программном закрытии окон навижена, используя SendKeys, возник один вопрос: Как проверить, что закрываемое окно закрылось? Или же что не осталось не закрытых окон?
Старый 28.05.2009, 18:49   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
for i := 1 to 10000 do
sendkeys({Esc});

©
Старый 29.05.2009, 12:21   #3  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
да именно так у мня и написано. Я хотела лишь уточнить, если в результате нажатия Ескейп, окно не закроется(по тем или иным причинам). Ну допустим, выдаст какое либо сообщение перед закрытием, которое по ескейп не зароется. Как в таком случае отследить закрылись все окна или нет?
Старый 01.06.2009, 19:20   #4  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
по данному коду закрывается лишь активное оно.. а если во время срабатывания кода пользователь работает в другом приложении на которое ескейп не действует. По моему разумению логично было перед выполнением цикла с ескейп, сделать окно навижена активным. Каким образом это можно сделать?
Старый 01.06.2009, 19:23   #5  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
а с какими еще приложениями ваши пользователя работают, негодяи?

а если серьезно, то зачем закрывать все окна? если надо просто закрыть Нав, то можно грубо и беспардонно убить процесс.
Старый 01.06.2009, 19:44   #6  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
ну можно , хотя не совсем удобно. каждый раз новый пользователь должен запускать навижн.. эт конечно не долго. но все же... я нашла команду WshShell.AppActivate. пробовала разные варианты, но навижн не активируется... Мож кто знает каким образом ее применяют в наве?
Старый 01.06.2009, 19:55   #7  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
а можно исходную задачу услышать?
зачем вообще все это?
Старый 01.06.2009, 20:15   #8  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
вообщем, я неправильно имя приложения,то бишь навижена задавала.
[codebox]IF wndHost.AppActivate(q) THEN
FOR i:=1 TO 50 DO
wndHost.SendKeys('{ESC}');[/codebox]

я думала что нужно писать аналогично названию процесса, т.е. finsql. Но так не работало.
Потому, попробовала определить q:='NAVISION', но оказалось что так он закрывает только 4-ку,
попробовала q:='Microsoft Dynamics NAV' и оказалось что такой вариант вполне благополучно активирует 5-ку и закрывает в ней все окна
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:35.