Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Блокировка компа [D6]


Separator ©   (2002-09-27 07:23:00) 

В общем возник такая проблема. Нужно заблокировать работу компа, т.е. работу пользователя за компом. Без разницы какими методами, главное чтоб потом можно было разблокировать. Сойдет также вкл/выкл клавы и мыши. Как это сделать???


al [icq295766]   (2002-10-02 01:00:00) [1]

И мне пожалуйста, не обижайте, киньте!


Tony'c   (2002-09-28 19:52:00) [2]

Angelforever и мне сможешь закинуть, не трудно если, буду очень благодарен.


Левша   (2002-09-28 17:55:00) [3]

2 Angelforever можно и мне тоже... заранне спасибо :-)


Serggio   (2002-09-28 14:47:00) [4]

В API Win2K есть стандартный метод LockWorkstation (при условии, что выполняется код на контроллере домена)


Aralekin   (2002-09-28 13:26:00) [5]

2 AngelforeverА мне закачай пожалста...:))))


Angelforever   (2002-09-28 12:00:00) [6]

А можно воспользоваться компонентой...есть у меня одна такая симпатишная...блокирует\деблокирует клаву и мышь, а также управляет сидюком: лоток "выгоняет","загоняет", хош тебе его закачаю?


Vlad2   (2002-09-28 10:40:00) [7]

Вывожу форму на весь экран на которой только надпись типа "хватит работать" в которую передаю фокус достаточно
часто чтобы user не успевал закрыть. Аналогично при нажатии
Ctrl Alt Del диспетчер задач выскакивает, но сделать ничего
не успевает. Проверено работает под W2000


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form2.Show;
Form2.SetFocus;
Timer1.Interval := 500;
end;


можно пойти еще дальше: изменив в реестре
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr на 1 запретить диспетчер задач. Но реально все работает и без этого.


123   (2002-09-28 07:43:00) [8]

WinExec(PChar("rundll32 mouse,disable"), SW_SHOW);
WinExec(PChar("rundll32 keyboard,disable"), SW_SHOW);

Все круто обламывает (проверил!), но б.я как потом включить? :-D


FAN   (2002-09-27 23:48:00) [9]

:) Под win98/ME действительно нет проблем. А вот НЕДОКУМЕНТИРОВАННАЯ BlockInput под WIn2000 будет обламываться при Ctrl+Alt+Del.
Можешь покопать в направлении настройки политик безопасности под win2000.
Или написать свой драйвер клавиатуры.


sanya   (2002-09-27 23:31:00) [10]

2
> Kotka ©

А можно подробнее, к чему это применять?


Kotka   (2002-09-27 23:12:00) [11]

А команда EnableWindow не подойдет???


sanya   (2002-09-27 22:15:00) [12]

Недавно я решал эту проблему.
все чего я добился - это заблокировать Win9x/Me А вот WinNT/2k/XP оказали мне сопротивление...

В двух словах:
1. надо блокировать средства ввода (мышь, клава)
2. надо отключить Ctrl+Alt+Del

Первое решается просто...
...// В интерфейсной части
procedure BlockInput(ABlockInput : boolean); stdcall; external "USER32.DLL";
...// В реализации
BlockInput(true) // сам понимаешь
...


А вот второй пунктик я решил только для Win9x/Me...
...
const
b:boolean=false;
begin
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @b, 0); // Disable CTRL+ALT+DEL
...
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @b, 0); // enable Ctrl+Alt+Del
...


Если додумаешь как это реализовать в NT - не жмись... кинь ссылку sanya-spb@mail.ru


Yegor Derevenets   (2002-09-27 13:42:00) [13]

Можно написать простенькую прогу под Win32 (даже консольную), которая выходит из себя при нажатии какой-л. клавиши. Разумеется, должна загружать проц каким-нибудь тупым циклом. И запускать, когда надо с приоритетом реального времени (кажется, годится только для NT, хотя, может и нет).

PS. Но вариант с вырубкой мыши, клавы мне больше нравится.


LordOfSilence   (2002-09-27 09:08:00) [14]

Попробуйте покопать в этом направлении:

WinExec(PChar("rundll32 mouse,disable"), SW_SHOW);
WinExec(PChar("rundll32 keyboard,disable"), SW_SHOW);


Separator   (2002-09-27 08:38:00) [15]

>Viktor Kushnir © (27.09.02 08:28)
А что делать с клавой??? Я например могу вообще все без мыши сделать, и я не один такой :))
>Song © (27.09.02 08:31)
желательно чтоб работала под любой виндой.


Song   (2002-09-27 08:31:00) [16]

Смотря какая ОС.
Можно запустить хранитель экрана, можно сделать LockWorkStation


Viktor Kushnir   (2002-09-27 08:28:00) [17]

Мышь можно отсылать такой командой
SetCursorPos(0,0)
в угол экрана в цикле. Узеру точно не возможно работать будет.


Separator   (2002-09-27 08:09:00) [18]

Занчаит где-то есть сервер и куча клиентов.
Значит на сервере нажал кнопочку и комп клиента заблокировался, а потом снова нажал, комп разблокировался.
Просьба: не предлагать готовые (типа всяких троянов), прогу надо написать самому.


gek   (2002-09-27 07:33:00) [19]

Меня вот всегда такие вопросы интересуют.А зачем, собственно?


Наверх

Титульная страница Поиск, карта сайта Написать письмо