Поясните, плз, как отлавливать окно и нажимать на кнопку

Обсуждение программ nnCron и nnCron LITE

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby Nthnsq » Tue, 05 Oct 2010, 09:47

вот, кое-что изобразил. Не то, что в (0), но тоже мешает жить.
Image
Nthnsq
 
Posts: 25
Joined: Fri, 18 Dec 2009, 12:41

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby Nthnsq » Tue, 05 Oct 2010, 11:00

и никого нет....
Nthnsq
 
Posts: 25
Joined: Fri, 18 Dec 2009, 12:41

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby elos » Tue, 05 Oct 2010, 12:17

Вставлю "пять копеек". А то гляжу - ну явно не тем задающий вопрос занимается.

Если вы только пользователь некой базы под 1С - лучше бы вы "напрягли" программера этой конкретно базы (или начальству доложились), чтобы он "вылизал" код и предусмотрел на всякий случай "защиту от дурака", предварительно поспрошав по офису кто как работает с базой (выходит/выключает - ну недаром же индексы сыпались). Как мне подсказали - индексы не теряет 1С под SQL.
Если вы программер этой базы - самое время заняться отладкой кода.

А то кончится всё это потерей информации, или недополученной прибылью, или ещё чем похуже.

Помог бы, да 1С не имею. А без 1С получится "круги на воде" рисовать... Как в тотале - ловили дочернее окно (по виду и подсознательному ощущению), а оно оказалось основным.
elos
 
Posts: 667
Joined: Tue, 25 Apr 2006, 11:15

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby Nthnsq » Tue, 05 Oct 2010, 13:02

elos wrote:Вставлю "пять копеек". А то гляжу - ну явно не тем задающий вопрос занимается.

Если вы только пользователь некой базы под 1С - лучше бы вы "напрягли" программера этой конкретно базы (или начальству доложились), чтобы он "вылизал" код и предусмотрел на всякий случай "защиту от дурака", предварительно поспрошав по офису кто как работает с базой (выходит/выключает - ну недаром же индексы сыпались). Как мне подсказали - индексы не теряет 1С под SQL.
Если вы программер этой базы - самое время заняться отладкой кода.

А то кончится всё это потерей информации, или недополученной прибылью, или ещё чем похуже.

Помог бы, да 1С не имею. А без 1С получится "круги на воде" рисовать... Как в тотале - ловили дочернее окно (по виду и подсознательному ощущению), а оно оказалось основным.

уважаемый.... вы просто не понимаете сути вопроса. Если бы вы знали 1С - то таких вопросв не было. Это окна движка, у которого код закрыт.
К тому же в (0) - 1cv8.2 - в ней нет индексов принципе.
А в 7.7 - бывают вылеты во время работы, бывают отключения электричества ночью, и УПС тоже отрубается. Не буду все объяснять, я с 1С работаю с 2003 года, если прошу помощи в прибивании окон - значит нельзя по другому.
Nthnsq
 
Posts: 25
Joined: Fri, 18 Dec 2009, 12:41

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby Nthnsq » Wed, 06 Oct 2010, 12:19

Подниму. Помогите, гуру. Чтобы я научился отлавливать окна по какому-либо признаку и прихлопывать их на лету.
Nthnsq
 
Posts: 25
Joined: Fri, 18 Dec 2009, 12:41

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby ascerdfg1 » Wed, 06 Oct 2010, 12:52

Code: Select all
WatchWinCreate: "1C*школа"
WatchWinActivate: "1C*школа"
Action:
30 0 DO  \ В течении трех секунд закрывать все окна с ошибкой
S" 1C*школа" WIN-CLOSE
100 PAUSE
LOOP
nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby Nthnsq » Wed, 06 Oct 2010, 13:13

ascerdfg1 wrote:
Code: Select all
WatchWinCreate: "1C*школа"
WatchWinActivate: "1C*школа"
Action:
30 0 DO  \ В течении трех секунд закрывать все окна с ошибкой
S" 1C*школа" WIN-CLOSE
100 PAUSE
LOOP

Это не то. В данном случае нужно нажимать на кнопку Перезапустить.
Nthnsq
 
Posts: 25
Joined: Fri, 18 Dec 2009, 12:41

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby AlikasS » Wed, 06 Oct 2010, 13:46

если nncron запущен сервисом
твои задачи возможно придется авторизировать , пробуй AsLoggedUser
если крон запущен приложением, авторизация не нужна
это можно увидет в диспетчере задач, от кого запущен крон
юзер- приложением
систем- сервисом

скажу сразу, эспериментировал на 1С доступ к интерфейсу которой есть только через Citrix
в этих условиях WinSpy некоторые окна и классы окон не показывает (например выдает класс: "Transparent Windows Client",
т.е. перед тестом следующих задач смотри отличия от моих задач и меняй.
сначала добавляем в кронтаб следующий текст
Code: Select all
<%
: WIN&CLASS-EXIST? { a1 u1 a2 u2 -- WIN-HWND/0 } ( имя_окна класс_окна -- хендл_окна/0 )
\ для работы просит две строки
\ имя окна из WinSpy, раздел "Child window:", контрол с именем"Text:" - 1 строка
\ класс окна из WinSpy, раздел "Child windows", контрол с именем "Class:" - 2 строка
\ если они пустые возможно из раздела "Main window:"
a1 u1 WIN-EXIST?
IF
WIN-HWND DUP GET-WCLASS a2 u2 WC-COMPARE
   IF
   ELSE
   DROP FALSE
   THEN
ELSE
FALSE
THEN
;
%>

следующие задачи для проверки, можешь добавлять по одной или скопом,
надеюсь разберешься

Code: Select all
#( test_for_windows&win-close
\ ловля окна "О программе" в 1С
SingleInstance
Action:
TMSG: "началось слежение окна О программе в 1С" 100 \ тестовое сообщение
BEGIN

S" О программе -*" S" Transparent Windows Clien*" WIN&CLASS-EXIST?
?DUP
IF
MSG: "окно отловлено"
DUP N>S S" ОК*" WIN-CLICK
MSG: "нажатие кнопки  ОК послано окну О программе в 1С"
DUP N>S S" %CRLF%" EVAL-SUBST WIN-SEND-KEYS
MSG: "сочетание клавиши ентер послано окну"
N>S WIN-CLOSE
MSG: "послано закрытие окна О программе"
THEN

500 PAUSE
AGAIN
)#


Code: Select all
#( test_for_windows&win-click
\ ловля окна "О программе" в word и excel 2003 rus
SingleInstance
Action:
TMSG: "началось слежение окна О программе в ворде и екселе 2003 rus" 10
BEGIN

\ берем из WinSpy имя окна "О программе Microsoft*"" , его класс "bosa_sdm_*"
S" О программе Microsoft*" S" bosa_sdm_*" WIN&CLASS-EXIST?
?DUP
IF
MSG: "окно О программе отловлено, на стеке хендл окна"
DUP N>S S" О системе*" WIN-CLICK
MSG: "нажатие кнопки  О системе* послано окну О программе"
DUP N>S S" @(О)" EVAL-SUBST WIN-SEND-KEYS
MSG: "сочетание клавишь alt+О (О - rus) послано окну О программе"
N>S WIN-CLOSE
MSG: "послано закрытие окна О программе"
THEN

500 PAUSE
AGAIN
)#


Code: Select all
#( test_for_windows&cal
\ ловля окна калькулятора в 1С
SingleInstance
Action:
TMSG: "началось слежение за калькулятором в 1с" 10 \ тестовое сообщение
BEGIN

S" Калькулятор*" S" Transparent Windows Clien*" WIN&CLASS-EXIST?
?DUP IF
MSG: "окно калькулятора отловлено, на стеке хендл окна"
DUP N>S S" 1{+}2%CRLF%" EVAL-SUBST WIN-SEND-KEYS
MSG: "сочетание клавишь калькулятору послано, должно получиться 1+2"
DUP N>S S" %CRLF%" EVAL-SUBST WIN-SEND-KEYS
MSG: "сочетание клавиши ентер калькулятору послано, должно получиться 3"
DUP N>S S" 2"  WIN-CLICK
MSG: "нажатие кнопки 2 калькулятору послано"
N>S WIN-CLOSE
MSG: "послано закрытие окна калькулятора"
THEN

500 PAUSE
AGAIN
)#


Code: Select all
#( test_for_windows&win-close121212
\ ловля окна справки в 1С
SingleInstance
Action:
TMSG: "началось слежение окна справки в 1С" 10 \ тестовое сообщение
BEGIN

S" Выбор главы*" S" Transparent Windows Clien*" WIN&CLASS-EXIST?
?DUP
IF
MSG: "окно отловлено"
DUP N>S S" Справка" WIN-CLICK
MSG: "нажатие кнопки  Справка послано окну Справка в 1С"
N>S WIN-CLOSE
MSG: "послано закрытие окна Справка"
THEN

500 PAUSE
AGAIN
)#


можно заметить что в некторых случаях
WIN-SEND-KEYS и WIN-CLICK не срабатывают
Last edited by AlikasS on Sat, 09 Oct 2010, 05:36, edited 1 time in total.
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby Nthnsq » Thu, 07 Oct 2010, 08:33

Ух ты, супер :) А я думал, уже никто не поможет :) буду сегодня весь день тестить.
Nthnsq
 
Posts: 25
Joined: Fri, 18 Dec 2009, 12:41

Re: Поясните, плз, как отлавливать окно и нажимать на кнопку

Postby Mur466 » Fri, 29 Nov 2013, 09:45

Поделюсь опытом, как отловить окно с определенным текстом
Например, программа Exchelspod выдает сообщение об ошибке (диалогбокс с текстом и кнопкой OK). При этом на экране может быть несколько окон с одинаковым заголовком Exchelspod (например главное окно той же программы)
Code: Select all
FOR-WINDOWS: "Exchelspod"
    FOR-CHILD-WINDOWS: "Ошибка ввода/вывода 32."
        LOG: "log\nncron.log" "%FOUND-CHILD-WINDOW%"
   ;FOR-CHILD-WINDOWS
;FOR-WINDOWS
Mur466
 
Posts: 2
Joined: Fri, 29 Nov 2013, 09:36

Previous

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests

cron