Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) КОП пишущий в файл links.tmp (число прочтений - 12207 )
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
КОП пишущий в файл links.tmp
21. Ноября 2008 :: 07:20
Печать  
Выкладываю на суд проверенных товарисчей разработочку, которая позволяет увидеть список активных пользователей в несколько ином виде. Здесь файлы КОПа. Скриншот далее.

16. Декабря 2008 :: 06:21
Обновление КОПа:
[+] Получение SPID для режима БД = SQL (спасибо Valet (результ не проверял, SQL нету))
[+] Получение PID процесса 1cv7?.exe (cпасибо MrDen и автору DynaWrapX.DLL)

Используемые компоненты:
1cpp.dll
dynawparx.dll (КОП её не регистрирует, "regsvr32 dynawparx.dll" делать самим)

ЗЫ: Собственно, исходной целью всей приблуды было именно отображение ID процесса 1С, чтобы было легче валить в терминале именно те 1С, которые мешают жить Улыбка
Вот, вчера счастливо откопал фичу в ДинаВраппереХ. Ура.
« Последняя редакция: 16. Декабря 2008 :: 07:01 - dnp »  

class_LinksTmpService_1.zip ( 4 KB | Загрузки )
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Разработка: КОП пишущий в файл links.tmp
Ответ #1 - 21. Ноября 2008 :: 07:21
Печать  
Позволяет увидеть штатный список активных пользователей вот в таком виде:
(в квадратных скобках - время простоя компа или терминальной сессии [чч:мм], если оно больше 59 секунд)

В поле "компьютер" выведено:
Клиентский компьютер, Login name в терминал, Имя терминального сервера, Имя терминальной сессии.

Для наглядности - в нижней части картинки "как это было"
« Последняя редакция: 21. Ноября 2008 :: 17:02 - dnp »  

UserList1.PNG ( 12 KB | Загрузки )
UserList1.PNG
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Разработка: КОП пишущий в файл links.tmp
Ответ #2 - 24. Ноября 2008 :: 10:33
Печать  
dnp

Зашибись идея.
На мой взгляд, вполне безопасная в реализации.
Достойно открытого раздела.

-
Я в свое время делал по той же схеме отдельную консольную утилитку, которая фиксировала активных пользователей и возвращала статус возврата в ERRORLEVEL.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #3 - 27. Ноября 2008 :: 08:30
Печать  
Супер!
  
Наверх
 
IP записан
 
Valet
Full Member
***
Отсутствует



Сообщений: 141
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #4 - 28. Ноября 2008 :: 14:32
Печать  
Код
Выбрать все
//номер сессии на SQL
RSМонитор=СоздатьОбъект("ODBCRecordSet");
spid=RSМонитор.ВыполнитьСкалярный("SELECT @@spid");
стр=Лев(СокрЛП(spid)+"      ",7)+стр; 



Кусочек кода добавляющего к имени компа еще номер сессии SQL.
  

/ Лень - двигатель прогресса. /
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #5 - 16. Декабря 2008 :: 07:06
Печать  
Valet писал(а) 28. Ноября 2008 :: 14:32:
Кусочек кода добавляющего к имени компа еще номер сессии SQL.

Спасибо Valet, добавил. Результ не проверял, SQL нету.

Обновил КОП (см. первый пост).
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #6 - 19. Декабря 2008 :: 06:33
Печать  
Обнаружил баг:
Иногда (сейчас 4/32) врёт PID, дает 2097184 вместо настоящего кода. Ищу обход.
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #7 - 24. Декабря 2008 :: 07:37
Печать  
dnp писал(а) 19. Декабря 2008 :: 06:33:
Обнаружил баг:
Иногда (сейчас 4/32) врёт PID, дает 2097184 вместо настоящего кода. Ищу обход.

В общем - это просто шибко быстрые пользователи. У нас терминал запускается без рабочего стола и меню "Пуск", то есть - по отдельной сессии для каждой 1Ски. Девушка умудряется запускать два подключения параллельно и с такой скоростью, что определитель запинается. При этом имя терминальной сессии тоже в обеих 1С получается одно, поскольку в реестре сохраняется запись только о последней.
Так и оставил.
  
Наверх
ICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #8 - 19. Февраля 2009 :: 16:12
Печать  
Чтобы узнать и IP, с к-го зашли в терминальную сессию:
http://www.softpedia.com/progDownload/ENVTSCIP-Download-83438.html
  
Наверх
 
IP записан
 
Sharky
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 17. Ноября 2010
Пол: Женский
Re: КОП пишущий в файл links.tmp
Ответ #9 - 17. Ноября 2010 :: 16:31
Печать  
Плачущий Ребята, подскажите, пожалуйста, куда надо копировать файлы из архива  class_LinksTmpService_1.zip? в каталог БД?

ПриНачалеРаботыСистемы() необходимо вызывать компоненту 1С++?

в КОП дан пример:

Процедура ПриНачалеРаботыСистемы()
миф = СоздатьОбъект("MetaInfoClasses");
Если ( миф.КлассСуществует( "СервисСпискаАктивныхПользователей" ) = 1 ) Тогда
глСервисСпискаАктивныхПользователей = СоздатьОбъект("СервисСпискаАктивныхПользователей");
глСервисСпискаАктивныхПользователей.Инит();
глСервисСпискаАктивныхПользователей.ОбновитьДанныеВспискеАП();
КонецЕсли;
     ...
КонецПроцедуры

Немного непонятно как 1с понимает, что обращение должно быть к КОП, чтобы использовать "Инит()" и "ОбновитьДанныеВспискеАП()"
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #10 - 18. Ноября 2010 :: 03:28
Печать  
Sharky писал(а) 17. Ноября 2010 :: 16:31:
Плачущий Ребята, подскажите, пожалуйста

Читай справку по 1С++ и смотри примеры использования, потому как подсказками тут не обойдешься...

P.S.: Спасибо за ап темы. раньше не видел. заюзал. впечатлился. автору огромное спасибо.
  
Наверх
 
IP записан
 
Sharky
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 17. Ноября 2010
Пол: Женский
Re: КОП пишущий в файл links.tmp
Ответ #11 - 18. Ноября 2010 :: 08:58
Печать  
Очень довольный спасибо! все работает!


Идея была в следующем, удаленно видеть активных пользователей в БД.

никак не могла найти понятный алгоритм, спасибо! Улыбка
  
Наверх
 
IP записан
 
Sharky
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 17. Ноября 2010
Пол: Женский
Re: КОП пишущий в файл links.tmp
Ответ #12 - 18. Ноября 2010 :: 15:12
Печать  
Ребята, подскажите, пожалуйста, в чем может быть проблема:
когда я обрабатываю свой "links.tmp" (файл БД из которой обработка запускается), то проблем нет
- ПутьФайл = КаталогИБ()\Syslog\inks.tmp

НО как только я хочу прочитать файл по адресу:

ПутьФайл = D:\1sbdb(1)\Syslog\inks.tmp

ТО,

Если ( ФС.СуществуетФайл( ПутьФайл ) = 1 ) Тогда  - проходит дальше   

Если ( бинда.подключитьсяКФайлу( ПутьФайл, 1, 1 ) = 1 ) Тогда - не подключается (возвращает 0).

Как обойти? в чем может быть проблема?
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #13 - 19. Ноября 2010 :: 02:19
Печать  
Sharky писал(а) 18. Ноября 2010 :: 15:12:
ПутьФайл = D:\1sbdb(1)\Syslog\inks.tmp

Рекомендую разуть глазки и добавить недостающую букву в имя файла.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: КОП пишущий в файл links.tmp
Ответ #14 - 19. Ноября 2010 :: 09:28
Печать  
Sharky писал(а) 18. Ноября 2010 :: 15:12:
Ребята, подскажите, пожалуйста, в чем может быть проблема:
когда я обрабатываю свой "links.tmp" (файл БД из которой обработка запускается), то проблем нет
- ПутьФайл = КаталогИБ()\Syslog\inks.tmp

НО как только я хочу прочитать файл по адресу:

ПутьФайл = D:\1sbdb(1)\Syslog\inks.tmp

ТО,

Если ( ФС.СуществуетФайл( ПутьФайл ) = 1 ) Тогда  - проходит дальше  

Если ( бинда.подключитьсяКФайлу( ПутьФайл, 1, 1 ) = 1 ) Тогда - не подключается (возвращает 0).

Как обойти? в чем может быть проблема?

букву L забыла
вместо
ПутьФайл = D:\1sbdb(1)\Syslog\inks.tmp
надо
ПутьФайл = D:\1sbdb(1)\Syslog\links.tmp
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать