![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Я хотел узнать, можно ли использовать такой код???
При запуске программы, программа запускается, но пишет ошибку!!! Я начал работать в 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: пользуемся тегами. Последний раз редактировалось Dimon-zmey, 30.12.2009 в 21:17. |