Обсуждение программ nnCron и nnCron LITE
by Light » Tue, 20 Jun 2006, 10:56
Народ как можно разблокировать рабочую станцию по WinXP автоматические в заданное время без участия пользователя?
Очень надо... 
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
by AlikasS » Wed, 28 Jun 2006, 06:43
дабы не пересказывать, посмотри в конференции
fido7.ru.nncron
http://www.fido-online.com/fidow/fido.d ... 694&-1&a10
7 и 9 мая 2005
Vadim Belko писал про возможность логиниться двумя вариантами.
сообщения под темой "unlockworkstation".
-

AlikasS
-
- Posts: 1440
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Light » Thu, 29 Jun 2006, 07:37
AlikasS,
Большое человеческое спасибо!!! 
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
by Light » Thu, 29 Jun 2006, 09:34
Простите за ламерский вопрос.
В эхоконференции приводится такой вот код:
#( test_unlock
WINAPI: OpenInputDesktop USER32.DLL
: DesktopName { hdsk -- a u }
128 ALLOCATE THROW >R
R@ 0!
0 SP@ 127 R@ 2 hdsk GetUserObjectInformationA
2DROP
R@ ASCIIZ> EVAL-SUBST
R> FREE DROP
;
USER-CREATE aUser 64 USER-ALLOT
USER-CREATE aPassword 64 USER-ALLOT
USER-VALUE npwd1
USER-VALUE npwd2
: UnlockWorkstation { a1 u1 a2 u2 \ hDsk hwl -- }
a1 u1 aUser ZPLACE a2 u2 aPassword ZPLACE
0 0 0 OpenInputDesktop TO hDsk
hDsk DesktopName S" Winlogon" COMPARE 0=
IF
GetCurrentThreadId GetThreadDesktop >R
hDsk SetThreadDesktop DROP
WIN-EXIST: "/(Снятие блокиpовки компьютеpа)|(Windows Logon)/"
IF
\ BEEP: 200 200
FOR-CHILD-WINDOWS: "DirectUIHWND"
;FOR-CHILD-WINDOWS
WIN-CHILD-HWND TO hwl
WinXP? hwl 0<> AND
IF
aUser ASCIIZ> S>NUM 1 MAX 0
DO
0 TO npwd1
FOR-CHILD-WINDOWS: "EDIT"
npwd1 1+ TO npwd1
;FOR-CHILD-WINDOWS
0 40 256 WIN-CHILD-HWND PostMessageA DROP \ клавиша down -> edit
PAUSE: 300
0 TO npwd2
FOR-CHILD-WINDOWS: "EDIT"
npwd2 1+ TO npwd2
;FOR-CHILD-WINDOWS
npwd1 npwd2 =
IF
0 40 256 hwl PostMessageA DROP \ клавиша down ->
DirectUI
THEN
PAUSE: 300
LOOP
0 13 256 hwl PostMessageA DROP \ клавиша enter -> DirectUI
THEN
FOR-CHILD-WINDOWS: "EDIT"
aUser 0 12 WIN-CHILD-HWND SendMessageA DROP \ user -> edit(1)
;FOR-CHILD-WINDOWS
aPassword 0 12 WIN-CHILD-HWND SendMessageA DROP \ password -> edit
0 13 256 WIN-CHILD-HWND PostMessageA DROP \ клавиша enter -> edit
THEN
R> SetThreadDesktop DROP
THEN
hDsk CloseDesktop DROP
aUser FREE DROP aPassword FREE DROP
;
SingleInstance
Rule: IsWorkstationLocked?
Action:
S" 2" S" pwd" UnlockWorkstation
)#
А как его собсвтенно запустить. Я выбираю выполнить скрипт. Ввожу этот текст. Nncron ругается на ошибку в строке WINAPI: OpenInputDesktop USER32.DLL.
Подскажите как скрипты такие запускаются и почему прога ругается.
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
by Light » Thu, 29 Jun 2006, 12:37
Короче вроде как запускается, но не разлочивает он компьютера!!! 
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
by Yury Zhukov » Thu, 29 Jun 2006, 13:27
На всякий случай уточню: а логин и пароль в задаче правильный вписан?
-
Yury Zhukov
-
- Posts: 243
- Joined: Thu, 16 Jun 2005, 09:22
- Location: Москва
by AlikasS » Thu, 29 Jun 2006, 14:10
- Code: Select all
#( test_unlock WINAPI: OpenInputDesktop USER32.DLL : DesktopName { hdsk -- a u } 128 ALLOCATE THROW >R R@ 0! 0 SP@ 127 R@ 2 hdsk GetUserObjectInformationA 2DROP R@ ASCIIZ> EVAL-SUBST R> FREE DROP ; USER-CREATE aUser 64 USER-ALLOT USER-CREATE aPassword 64 USER-ALLOT USER-VALUE npwd1 USER-VALUE npwd2
: UnlockWorkstation { a1 u1 a2 u2 \ hDsk hwl -- } a1 u1 aUser ZPLACE a2 u2 aPassword ZPLACE 0 0 0 OpenInputDesktop TO hDsk hDsk DesktopName S" Winlogon" COMPARE 0= IF GetCurrentThreadId GetThreadDesktop >R hDsk SetThreadDesktop DROP WIN-EXIST: "/(Снятие блокиpовки компьютеpа)|(Windows Logon)/" IF \ BEEP: 200 200 FOR-CHILD-WINDOWS: "DirectUIHWND" ;FOR-CHILD-WINDOWS WIN-CHILD-HWND TO hwl WinXP? hwl 0<> AND IF aUser ASCIIZ> S>NUM 1 MAX 0 DO 0 TO npwd1 FOR-CHILD-WINDOWS: "EDIT" npwd1 1+ TO npwd1 ;FOR-CHILD-WINDOWS 0 40 256 WIN-CHILD-HWND PostMessageA DROP \ клавиша down -> edit PAUSE: 300 0 TO npwd2 FOR-CHILD-WINDOWS: "EDIT" npwd2 1+ TO npwd2 ;FOR-CHILD-WINDOWS npwd1 npwd2 = IF 0 40 256 hwl PostMessageA DROP \ клавиша down -> DirectUI THEN PAUSE: 300 LOOP 0 13 256 hwl PostMessageA DROP \ клавиша enter -> DirectUI THEN FOR-CHILD-WINDOWS: "EDIT" aUser 0 12 WIN-CHILD-HWND SendMessageA DROP \ user -> edit(1) ;FOR-CHILD-WINDOWS aPassword 0 12 WIN-CHILD-HWND SendMessageA DROP \ password -> edit 0 13 256 WIN-CHILD-HWND PostMessageA DROP \ клавиша enter -> edit THEN R> SetThreadDesktop DROP THEN
hDsk CloseDesktop DROP aUser FREE DROP aPassword FREE DROP ;
SingleInstance \ Rule: IsWorkstationLocked? \ можно поставить свое условие Action: S" 1" S" пароль_первого пользователя" UnlockWorkstation )#
комп сам логиниться под пользователем который первый (верхний)
на экране приветствия.
для второго (с верху на экране приветствия) пользователя после
Action:
S" 2" S" пароль_второго_пользователя" UnlockWorkstation
-

AlikasS
-
- Posts: 1440
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Light » Fri, 30 Jun 2006, 07:23
AlikasS, у меня пара глупых, но важных для меня вопросов. Я только начинаю юзать Nncron, так что господа отнеситесь, пожалуйста, с пониманием.
1. Этот код работатет только если на мониторе экран приветствия с пользователями или при блокировке компа по Win+L он тоже работает. Собственно спрашиваю, поскольку мне надо разблокировать залоченый комп по Win+L.
2. Как этот скрипт сработает если не один профиль пользователя еще не загружен, или nncron запускает задачи в качестве процесса. Можно описать подробнее как создать такую задачу в nncron.
3. Самый глупый вопрос, но все же. Как вообще запустить этот скрипт, не без участия пользователя. Я имею в виду, если поместить его в отдельный файл, nncron не позволяет назначить ему времы выполнения. Может это как-то через Bat файл делается. Какая команда в Bat файле запускает этот скрипт на исполнение.
Буду очень благодарен за ответы.
Заранее большое спасибо тебе, AlikasS и все остальным.
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
by AlikasS » Sun, 02 Jul 2006, 07:02
Light wrote:AlikasS, у меня пара глупых, но важных для меня вопросов. Я только начинаю юзать Nncron, так что господа отнеситесь, пожалуйста, с пониманием. 1. Этот код работатет только если на мониторе экран приветствия с пользователями или при блокировке компа по Win+L он тоже работает. Собственно спрашиваю, поскольку мне надо разблокировать залоченый комп по Win+L. 2. Как этот скрипт сработает если не один профиль пользователя еще не загружен, или nncron запускает задачи в качестве процесса. Можно описать подробнее как создать такую задачу в nncron. 3. Самый глупый вопрос, но все же. Как вообще запустить этот скрипт, не без участия пользователя. Я имею в виду, если поместить его в отдельный файл, nncron не позволяет назначить ему времы выполнения. Может это как-то через Bat файл делается. Какая команда в Bat файле запускает этот скрипт на исполнение. Буду очень благодарен за ответы. Заранее большое спасибо тебе, AlikasS и все остальным.
1. задача работает независимо заходил ли пользователь и потом заблокировал по win+L или система только что стартовала.
Главное что бы был включен экран приветствия и что бы не требовалось "ctrl+alt+del" перед выбором пользователя и ввода пароля.
2. просто вставь пример в tab файл, можешь добавить свои условия на старт задачи ( например "WatchDrive:" на вставление флешки или просто по времени, смотри help->работа с программой->задача-> спецификация времение и/или спецификация события и/или условия запуска задачи).
для старта задачи нет необходимости в пользователе  .
3. а зачем его помещать в отдельный файл?
хотя конечно можно, см. help->работа с программой->задача->способы запуска задачи->запуск задачи в качестве отдельного скрипта
P.S. есть еще вариант для login когда отключен экран приветствия,
т.е необходимо непосредственно вводить имя пользователя и пароль.
но он (у меня например) работает только когда еще не один пользователь не вошел в систему. Т.е. осуществить первоначальный вход можно, а вот разлочить после Win+L у меня не получилось.
удачи вообщем в экспериментах!!
-

AlikasS
-
- Posts: 1440
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Light » Tue, 04 Jul 2006, 10:05
Спасибо за ясные ответы.
Жалко, что нельзя разлочить машину без экрана приветствия, залоченную по Win+L.
Может я что-то неправильно понимаю, поясни. Ты имеешь в виду экран приветствия (синий такой) с выбором пользователей.
Просто у меня по Win+L в центре экрана появляется окошко - система заблокирована. 2 поля - имя пользователя и пароль. С этим окошком можно разлочить систему?
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
by AlikasS » Wed, 05 Jul 2006, 01:11
попробуй вот этот вариант,
делали для случая, когда экрана приветствия нет,
т.е. надо вводить имя и пароль пользователя.
- Code: Select all
#( test_unlock2 \ NoActive WINAPI: OpenInputDesktop USER32.DLL : DesktopName { hdsk -- a u } 128 ALLOCATE THROW >R R@ 0! 0 SP@ 127 R@ 2 hdsk GetUserObjectInformationA 2DROP R@ ASCIIZ> EVAL-SUBST R> FREE DROP ; USER-CREATE aUser 64 USER-ALLOT USER-CREATE aPassword 64 USER-ALLOT : UnlockWorkstation { a1 u1 a2 u2 \ hDsk -- } a1 u1 aUser ZPLACE a2 u2 aPassword ZPLACE 0 0 0 OpenInputDesktop TO hDsk hDsk DesktopName S" Winlogon" COMPARE 0= IF GetCurrentThreadId GetThreadDesktop >R hDsk SetThreadDesktop DROP WIN-EXIST: "/(Снятие блокиpовки компьютеpа)|(Windows Logon)|(Вход в Windows)/" IF \ BEEP: 200 200 WinXP? IF FOR-CHILD-WINDOWS: "DirectUIHWND" ;FOR-CHILD-WINDOWS 0 40 256 WIN-CHILD-HWND PostMessageA DROP \ клавиша down PAUSE: 500 THEN FOR-CHILD-WINDOWS: "EDIT" aUser 0 12 WIN-CHILD-HWND SendMessageA DROP \ user ;FOR-CHILD-WINDOWS aPassword 0 12 WIN-CHILD-HWND SendMessageA DROP \ password 0 13 256 WIN-CHILD-HWND PostMessageA DROP \ клавиша enter THEN R> SetThreadDesktop DROP THEN
hDsk CloseDesktop DROP aUser FREE DROP aPassword FREE DROP ;
HyperActive SingleInstance NoLog \ Rule: IsWorkstationLocked? Action: S" Administrator" S" пароль_админа" UnlockWorkstation \ здесь твои имя_пользователя и пароль )#
у меня получилось по этому варианту только входить в систему, а разблокировать после Win+L нет
другой вариант: экран приветствия включить и использовать вариант
который размещал в форуме 29.06.06
http://www.nncron.ru/forums/viewtopic.php?p=5316#5316
-

AlikasS
-
- Posts: 1440
- Joined: Wed, 28 Jun 2006, 05:39
- Location: Khabarovsk
-
by Light » Wed, 05 Jul 2006, 10:39
Да наверно так и буду делать. Спасибо огромное за помощь.
Действитель залоченый компьютер по wn+L не получается разблокировать. У мелокомягких как то там мудрено сделано. Дело в том, что например в планировщике MacroScheduler 8 такая возможность есть. Но у них там для этих целей отдельный экзешник написан. И MacroScheduler триальная. Вот такие дела. Буду пробовать все таки работать с Nncron'ом.
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
by Lynx » Wed, 05 Jul 2006, 12:17
Если экран приветствия отключен, то там надо получается сначала нажать Ctrl+Alt+Del и только потом вводить. Так?
А в этом коде нажатия Ctrl+Alt+Del нема. Вот если добавить - тогда возможно получится 
-

Lynx
-
- Posts: 321
- Joined: Thu, 04 May 2006, 20:07
- Location: Уфа
-
by Light » Wed, 05 Jul 2006, 14:25
AlikasS, спасибо огромное все заработало, когда я включил быстрое переключение между пользователями. NNcron разлочивает все суперским образом. Еще раз огромное спасибо. Работает скрипт от 28 июня.
-
Light
-
- Posts: 8
- Joined: Tue, 20 Jun 2006, 10:27
Return to nnCron forum (Russian)
Who is online
Users browsing this forum: Bing [Bot] and 1 guest
|
|