
30.12.2009, 20:57
|
Прохожий
|
|
Регистрация: 30.12.2009
Сообщения: 12
Репутация: 10
|
|
Помогите с кодом!!!
Я хотел узнать, можно ли использовать такой код???
При запуске программы, программа запускается, но пишет ошибку!!!
Я начал работать в Delphi только позавчера, поэтому много не знаю!!!
Мой код:
Код:
var
reg:TRegistry;
data : integer;
time : integer;
datadata : integer;
timetime : integer;
datacomp : integer;
timecomp : integer;
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
Begin
ShowWindow(Handle,SW_HIDE);
ShowWindow(Application.Handle,SW_HIDE);
reg:=TRegIniFile.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Comp-OFF\Time', false);
data:=StrToint(reg.ReadString('data-off'));
time:=StrToint(reg.ReadString('time-off'));
reg.CloseKey;
reg.Free;
datacomp := StrToint(FormatDateTime('yyyymmdd',now));
timecomp := StrToint(FormatDateTime('hhmm',now));
datadata := data - datacomp;
timetime := time - timecomp;
if datadata > 0 then
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
ExitWindowsEx(EWX_ShutDown,0);// Выключение
end;
if datadata = 0 then
if timetime > 0 then
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
ExitWindowsEx(EWX_ShutDown,0);// Выключение
end;
if datadata = 0 then
if timetime = 0 then
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
ExitWindowsEx(EWX_ShutDown,0);// Выключение
end;
if datadata = 0 then
if timetime < 0 then
reg:=TRegIniFile.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Comp-OFF\Time', false);
reg.DeleteValue('data-off');
reg.DeleteValue('time-off');
reg.CloseKey;
reg.Free;
reg:=TRegIniFile.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', false);
reg.DeleteValue('Comp-OFF');
reg.CloseKey;
reg.Free;
Form1.Close;
if datadata < 0 then
reg:=TRegIniFile.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Comp-OFF\Time', false);
reg.DeleteValue('data-off');
reg.DeleteValue('time-off');
reg.CloseKey;
reg.Free;
reg:=TRegIniFile.Create;
reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', false);
reg.DeleteValue('Comp-OFF');
reg.CloseKey;
reg.Free;
Form1.Close;
end;
lmikle: пользуемся тегами.
|