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

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

Закрытие доступа к компьютеру. [D6, Win95/98]


Карлсон ©   (2002-10-16 18:57:00) 

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


Василий2   (2002-10-17 17:55:00) [1]

Насчет EnableWindow... такая прога есть, называется EnableIt!. Сайт v0id.by.ru.


Карлсон   (2002-10-17 16:37:00) [2]

большое спасибо за высказанные мысли!
будем работать....


Dm9   (2002-10-17 16:17:00) [3]

Можно запретить системные клавиши:
SystemParametersInfo (Spi_ScreenSaverRunning, 1, nil, 0),
после этого развернуть прогу на весь экран и затребовать пароль.
Саму прогу в реестре прописать:
HKEY_LOCAL_MASHINE\Software\Microsoft\Windows\Curren Version\Run...


Sharik_212   (2002-10-17 14:53:00) [4]

Посмотри, как "правильно" защитить твою винду средствами самой винды на http://winfaq.com.ru.Там много чего есть по этому поводу


Игорь Шевченко   (2002-10-17 13:38:00) [5]

NT поставить (WinNT, Win2K, WinXP)
И еще, если мне память не изменяет, то в потребительских версиях windows можно, вроде, поставить требование обязательной авторизации. Или я чего-то не помню...


pavel-ak   (2002-10-17 13:20:00) [6]

На сайте было много примеров, например как спрятать все окна,
делаешь такую прогу, ставишь в автозагрузку, при загрузке она запрещает alt+ctrl+del и alt+tab (см примеры и форум),прячет все окна, а после ввода пароля возвращает всё на место.

Посмотри форум а также поищи малодокументированные команды виндовс.


xyz   (2002-10-16 23:19:00) [7]

Вариант:
В автозапуск прогу,
она на весь экран и хватает он кей пресс...
На он кей пресс ШоуМессадже("");
И тока на Ф12 Введите пароль...


TTCustomDelphiMaster   (2002-10-16 21:45:00) [8]

Попробуйте такую штуку

Ученик © (29.09.02 20:23)
Как идея, запретить (через EnableWindow) все окна кроме своего.

Ученик © (29.09.02 21:25)
Ученик © (29.09.02 20:23)

private
{ Private declarations }
FWindowList : Pointer;

type
PTaskWindow = ^TTaskWindow;
TTaskWindow = record
Next: PTaskWindow;
Window: HWnd;
end;

var
TaskWindowList: PTaskWindow = nil;

function DoDisableWindow(Window: LongInt; Data: LongInt): Bool; stdcall;
var
P: PTaskWindow;
begin
if (Window <> Data) and (Window <> GetWindowLong(Data, GWL_HWNDPARENT)) and
IsWindowVisible(Window) and IsWindowEnabled(Window) then
begin
New(P);
P^.Next := TaskWindowList;
P^.Window := Window;
TaskWindowList := P;
EnableWindow(Window, False);
end;
Result := True;
end;

function DisableTaskWindows(ActiveWindow: HWnd): Pointer;
begin
TaskWindowList := nil;
try
EnumWindows(@DoDisableWindow, ActiveWindow);
Result := TaskWindowList;
except
EnableTaskWindows(TaskWindowList);
raise;
end
end;

procedure EnableTaskWindows(WindowList: Pointer);
var
P: PTaskWindow;
begin
while WindowList <> nil do
begin
P := WindowList;
if IsWindow(P^.Window) then EnableWindow(P^.Window, True);
WindowList := P^.Next;
Dispose(P);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FWindowList := DisableTaskWindows(Handle)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
EnableTaskWindows(FWindowList);
FWindowList := nil
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if FWindowList <> nil then
EnableTaskWindows(FWindowList)
end;



Anatoly Podgoretsky   (2002-10-16 21:14:00) [9]

Есть варианты,

1. существуют програмы которые это делают, но больно опасные они, можно все потерять, ничем не востановишь.

2. Нормальный путь в данном случае пароль на БИОС

3. Второй нормальный путь, поставить соответствующую ОС


Карлсон   (2002-10-16 21:03:00) [10]

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


Suntechnic   (2002-10-16 19:24:00) [11]

>Ricks © (16.10.02 19:02)
Угу.... никогда не пробовали в Win 95/98 на запрос ввода пароля нажать Esc? Попробуйте на досуге.


STANT   (2002-10-16 19:08:00) [12]

А лучше поставить пароль в BIOS


Ricks   (2002-10-16 19:02:00) [13]

Может быть это не то что вы хотите, но все-же, для начала можно просто сделать себе user account и поставить на него пароль.


Наверх

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