Имя: Пароль:
1C
1C 7.7
v7: Время бездействия системы
0 kupec
 
30.05.13
13:52
Процедура Сформировать()
   //сообщает время системы в миллисекундах;
   Scr = СоздатьОбъект("MSScriptControl.ScriptControl");
   Scr.Language = "javascript";
   Сообщить(Scr.Eval("new Date().getTime()"));
КонецПроцедуры

есть ли что нибудь подобное чтобы получить время бездействия Windows
1 mikecool
 
30.05.13
13:52
а что есть "время бездействия Windows"?
2 drcrasher
 
30.05.13
13:53
wsh, wmi, idle и будет тебе щасте
3 kupec
 
30.05.13
13:53
ну время простоя...или как по твоему будет?
4 drcrasher
 
30.05.13
13:53
(1) процесс системы с ид=0
5 FN
 
30.05.13
13:54
1с++

Синтаксис: ПолучитьВремяПростояСистемы()

Возвращает: тип: Время простоя в миллисекундах.

Важно: Метод работает только на Windows ME/2000/XP и выше.

Описание: Возвращает время простоя сеанса работы пользователя в Windows. Используется соответствующие системные функции из WinAPI.

Удобно использовать внутри таймеров/обработки ожидания для проверки бездействия пользователя. Например, в целях завершения работы, если это задано административной политикой.

Пример: Создайте внешнюю обработку со следующим модулем и нажмите Сформировать Потом какое-то время ничего не нажимайте клавиатуру и не трогайте мышь и вы увидете, как увеличивается время простоя. А если тронуть мышь или нажать клавишу, время простоя сбросится к нулю!

Перем РасширениеФормы;
Перем Информатор;
Процедура Таймер() Экспорт
   ПрошлоВремени = Информатор.ПолучитьВремяПростояСистемы();
   Сообщить("ПрошлоВремени = <"+ПрошлоВремени+">");
КонецПроцедуры
//*******************************************
Процедура Сформировать()
   РасширениеФормы = СоздатьОбъект("РасширениеФормы");
   РасширениеФормы.ОбработкаОжидания("Таймер", 50);
   Информатор = СоздатьОбъект("Информатор");
КонецПроцедуры
6 Ёпрст
 
30.05.13
13:54
7 drcrasher
 
30.05.13
13:55
8 kupec
 
30.05.13
13:56
(5) и (6) спасибо, я это видел и опробовал

   Сообщить(Scr.Eval("new Date().getTime()"));

что можно указать в сообщить чтобы без ВК обойтись
9 kupec
 
30.05.13
13:59
(7) а зачем это вообще?
10 Ёпрст
 
30.05.13
14:01
(8) а какое отношение получение текущего времени имеет к времени простоя ?
11 Ёпрст
 
30.05.13
14:01
чего надо то вообще ?
12 kupec
 
30.05.13
14:03
(11) Надо получить время простоя системы
В (0) без использования ВК получено время в миллисекундах (текущее), так вот...можно ли без использования ВК получить время простоя, мне думается что через MSScriptControl.ScriptControl это возможно
13 Mikeware
 
30.05.13
14:18
(12) и что ты дальше будешь делать с этим временем?
14 Frost616
 
30.05.13
14:25
(13) юзерам пинка давать наверное за то,что чаи по полдня гоняют)))
15 Ёпрст
 
30.05.13
14:26
(12)это врят ли, врят ли через whs докопаться до GetIdleTime()
16 Frost616
 
30.05.13
14:29
(0) надо написать в 1С чтоб допилили в платформе обработчики на действия мыши
17 ЧеловекДуши
 
30.05.13
14:34
(12) Никак, вот так получилось получить доступ к процессам.
Но есть свои проблемы...

глWshShell = CreateObject("WScript.Shell");
oExec=глWshShell.exec("rundll32.exe kernel32,SleepEx");
глLocator=CreateObject("WbemScripting.SWbemLocator");
глService=глLocator.ConnectServer();
глProcessID=глService.Get("Win32_Process.Handle="+oExec.ProcessID).ParentProcessID;    



cur_user_time   = Число(глService.get("win32_process.Handle="+глProcessID).UserModeTime);
cur_kernel_time = Число(глService.get("win32_process.Handle="+глProcessID).KernelModeTime);
18 kupec
 
30.05.13
14:41
Всем спасибо, наврено придется использовать ВК 1срр
19 VladZ
 
30.05.13
14:41
Таки не услышал, зачем автору время простоя...
20 kupec
 
30.05.13
14:42
(19) чтоб на кассе срабатывала блокировка
21 Ёпрст
 
30.05.13
14:43
(20) в винде воткни и привет, 1с-ину то зачем использовать для этого ?
22 VladZ
 
30.05.13
14:47
(20) Делал я такую фигню на 1С. Технически реализуемо. Но, как показывает практика, бестолково. Лучше винду блокировать.
23 kupec
 
30.05.13
15:09
(21) во время блокировки должна открываться спец форма для продавца, на этой форме периодически обновляются данные
24 Ёпрст
 
30.05.13
15:42
(23) пиши свою экранную заставку, в ней - всё что угодно
25 kupec
 
30.05.13
16:15
(24) не потяну!
26 Torquader
 
30.05.13
21:29
(25) Так проще простого - качаешь готовый пример, и вставляешь в него вызов приложения, которое показывает форму, а форму можно хоть на hta нарисовать.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.