Bilgisayarı kapatma ile ilgili hazır kodu siteden aldım.
Uygulamam da kullanıyorum ama bir timer ile
edite girilen süre ile timerı eşitliyorum
timerı aktif ediyorum
Timer dada bu kapatma kodunu kullanıyorum ama sanki kısır döngüye giriyor. ve süre geçtiği halde kapatmıyor.
uses a v.s. bir şey ekelemek gereklimi direk apiler kullanılmıyormu?
Yorum getirebilirmisiniz.
Kod: Tümünü seç
var
tkHandle : THandle;
BufferLun,ret : DWORD;
tk,tkPrevious : TTokenPrivileges;
LID : TLargeInteger;
LUID : TLuIDAndAttributes;
versione : TOSVersionInfo;
begin
BufferLun := 1024;
ret := 0;
versione.dwOSVersionInfoSize := sizeof(versione);
GetVersionEx(versione);
if versione.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
tkHandle := GetCurrentProcess;
OpenProcessToken(tkHandle,TOKEN_ALL_ACCESS,tkHandle);
LookupPrivilegeValue(PChar(''),PChar('SeShutDownPrivilege'),LID);
LUID.Luid := LID;
LUID.Attributes := SE_PRIVILEGE_ENABLED;
tk.PrivilegeCount := 1;
tk.Privileges[0] := LUID;
AdjustTokenPrivileges(tkHandle,False,tk,BufferLun,tkPrevious,ret);
end;
ExitWindowsEx(EWX_SHUTDOWN or EWX_PowerOff,0);
end;