Да, это работает и в Windows 7. Я запустил программу с повышенными привилегиями (Windows 7 Home Premium), и после этого диспетчер задач больше не доступен.
Но, как свидетельство, я должен сказать, что код
case YesNo of
False:
begin
WriteInteger('DisableTaskMgr',1) ;
end;
True:
begin
WriteInteger('DisableTaskMgr',0) ;
end;
end;
довольно ужасно. Прежде всего, нет необходимости в деталях begin
и end
, потому что команды WriteInteger...
являются однострочными. Во-вторых, почему бы просто не записать значение not YesNo
?
На самом деле нужно написать код как
WriteInteger('DisableTaskMgr', byte(not YesNo));
Разве это не намного более читабельно и кратко?