Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2013, 13:34   #11
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

я уже об этом говорил: #7
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.05.2013, 14:01   #12
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Могу предложить другой способ: вести лог запуска процедур в текстовом файле (процедура запущена[время] и процедура завершена[время]), а для проверки использовать стороннюю программку, периодически проверяющую логи процедур на завершение через определенный интервал. Остальные способы так или иначе будут не срабатывать в ряде случаев.
Hugo121
Цитата:
я уже об этом говорил: #7
Похоже, что так. А как и посредством чего вести логи? ну и проверять их. Хотя бы в общем виде или ссылку на источник. Что-то полегче. Может существует готовое решение.
strannick вне форума Ответить с цитированием
Старый 29.05.2013, 14:14   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

логи вести Вашими макросами - дописывать в текстовый файл строку за строкой, а вот чем, когда и как их анализировать - это вопрос на который Вам предстоит найти ответ
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.05.2013, 14:15   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

У меня готового нет.
Лог это обычный текстовый файл, который сразу после записи освобождается для доступа (хотя может и занятый можно считать, точно не знаю).
Примеров кода записи/дозаписи текста много всюду.
Сложнее написать этот сторонний скрипт, чтоб он работал и периодически чекал этот файл, анализировал содержимое. И чтоб не работал вечно
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.05.2013, 14:22   #15
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
А как и посредством чего вести логи? ну и проверять их.
Вести логи лучше всего непосредственно в ваших макросах (можно даже и без файла логов - например, через реестр).

т.е. при запуске макроса записывается значение с временем начала исполнения данной процедуры в лог, а перед завершением - с временем окончания.

Для проверок придется писать программу на каком-либо из языков программирования (Delphi, C++ и т.п.), которая будет работать, например, в трее и проверять данные по работе процедур с определенной периодичностью. в принципе, программа элементарная...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 29.05.2013, 14:24   #16
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Кажется можно и vbs заставить это делать. Т.е. тот же VBA практически.

Или же создать другой экземпляр Экселя, в котором выполнить макрос по проверке этого лога.
Вот только не знаю, что будет с вторым Экселем, если первый зависнет или рухнет?
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 29.05.2013 в 14:33.
Hugo121 вне форума Ответить с цитированием
Старый 29.05.2013, 14:28   #17
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Кажется можно и vbs заставить это делать. Т.е. тот же VBA практически.
Там, скорее всего, придется использовать планировщик задач для запуска. или сильно углубляться в API.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 29.05.2013, 14:37   #18
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Да, я нашёл только такое. Но в принципе можно приспособить
Код:
 ' Monitor File Creation (from VBSEDIT Collection)

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\cimv2")

Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _
        & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
            & "TargetInstance.GroupComponent= " _
                & "'Win32_Directory.Name=""C:\\\\Documents and Settings\\\\\юзер\\\\\Desktop""'")

Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    Wscript.Echo objLatestEvent.TargetInstance.PartComponent
Loop
P.S. Кто объяснит, зачем в этих кодах всегда
strComputer = "."
Почему нельзя просто использовать "."?
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 29.05.2013 в 14:40.
Hugo121 вне форума Ответить с цитированием
Старый 29.05.2013, 15:38   #19
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
Hugo121: Почему нельзя просто использовать "."?
можно сразу использовать. Это связано с тем, что то, что вы предлагаете использовать, относится к программе "WMI". Вместе с операционной системой "Windows" продаётся ещё программа "WMI". Программа "WMI" предназначена для работы с удалённым компьютером, а не с локальным компьютером. Но для "WMI" придумали другое использование - для локального компьютера. Точка означает "локальный компьютер". Вместо точки должно быть имя удалённого компьютера. Видимо имя удалённого компьютера удобнее кому-то писать в переменную. Но для точки решили не изменять синтаксис и так и оставили переменную "strComputer".
Скрипт вне форума Ответить с цитированием
Старый 29.05.2013, 15:46   #20
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Скрипт, спасибо. Наконец-то прояснилось
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оповещение пользователей по локальной сети Swatch Microsoft Office Access 9 08.06.2014 19:27
Передача файлов по сети (оповещение о входящем файле) Makar_79 Работа с сетью в Delphi 2 17.05.2013 16:39
Оповещение 29 числа каждого месяца pnz_punisher Общие вопросы Delphi 6 13.09.2010 20:23
Выключить оповещение о ошибках Вавел из ГМТУ Общие вопросы Delphi 8 26.06.2009 13:20
Как поставить оповещение в Access? xruss Microsoft Office Access 11 05.12.2008 10:27