Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: Tüm Windows Platformları kapatmak....  (Okunma sayısı 1506 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

muderless

  • Ziyaretçi
Tüm Windows Platformları kapatmak....
« : 26 Kasım 2005 01:42:34 »
{
Genellikle bilgisayarda müzik dinliyorum. (Yatarken bile)
Genellikle uyuyakalıyorum.....
Tabiii bilgisayar açık kalıyor. İstediğim zaman kapanması için bu kodu yazdım.
formunuza bir edit ve bir buton ve bir adet timer bırakın
timer in enablesini false yapmalısınız. Yoksa bilgisayarinizi birkaç saniye
içinde kapatir. ha bu arada Timerin interval değerini 10000 yapınki bilgisayarinizin
hizini pek düşürmesin. Daha büyükte yapabilirsiniz...Fakat dikkat edin interval
bir dakikadan daha büyük olmasın..Yoksa verdiğiniz zamanı karşılaştırma yapıp bulamayabilir..

}




unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Timer1: TTimer;
    BitBtn1: TBitBtn;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
     procedure BitBtn1Click(Sender: TObject);
  private
//  function ShutMeDown:string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ///BENIM KOD///
  hToken : THandle;
  tkp,p : TTokenPrivileges;
  RetLen : DWord;
  ExReply: LongBool;
  Reply : DWord;
  ///BITTI//
  saat,dakika,saniye,milisaniye:word;
  s,s1,s2,d1,d2:string;
implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
DecodeTime(Time,saat,dakika,saniye,milisaniye);
if s1=inttostr(saat) then
if s2=inttostr(dakika) then
    begin
       if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken) then
               begin
               if
LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid) then
                       begin
                       tkp.PrivilegeCount := 1;
                       tkp.Privileges[0].Attributes :=
SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken,False,tkp,SizeOf(TTokenPrivileges),p,RetLen);
                       Reply := GetLastError;
               if Reply = ERROR_SUCCESS then
        begin
        ExReply:= ExitWindowsEx(EWX_POWEROFF or EWX_FORCE, 0);
        if ExReply then
//        Result:='Shutdown Initiated'
        else
//        Result:='Shutdown failed with ' + IntToStr(GetLastError);
        end;
       end;
       end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//edit1.Text:=timetostr(Time);
Label1.Caption :=timetostr(Time);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
s:=edit1.text;
s1:=Copy(s,1,2);
s2:=copy(s,4,2);
Timer1.Enabled:=true;
begin
   MessageDlg('GERİ SAYIM BAŞLADI', mtInformation,[mbOk], 0);
end;

Application.Minimize;
end;



Çevrimdışı cihatozdemir

  • Yeni Üye
  • *
  • İleti: 10
  • Rep: +0/-0
Ynt: Tüm Windows Platformları kapatmak....
« Yanıtla #1 : 24 Aralık 2009 12:38:53 »
Müdürless Bu dediğin kodu W7 de denediğim zaman olmuyor. daha doğrusu kapatmıor;) eğer deneme şansın varsaa bir bak

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: Tüm Windows Platformları kapatmak....
« Yanıtla #2 : 24 Aralık 2009 15:30:54 »
Kod: Delphi
  1. function haydibakalim(flag : word): Boolean;
  2. var veri      : TOSVersionInfo;
  3.     hToken  : THandle;
  4.     tp      : TTokenPrivileges;
  5.     h       : DWord;
  6. begin
  7.   result := false;
  8.   veri.dwOSVersionInfoSize:=SizeOf(veri);
  9.   GetVersionEx(veri);
  10.   if veri.dwPlatformId = VER_PLATFORM_WIN32_NT then
  11.   begin
  12.       OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken);
  13.     LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
  14.     tp.PrivilegeCount := 1;
  15.     tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  16.     h := 0;
  17.     AdjustTokenPrivileges(hToken,False,tp,0,PTokenPrivileges(nil)^,h);
  18.     CloseHandle(hToken);
  19.     result := ExitWindowsEx(flag,0);
  20.     Application.Terminate;
  21.   end
  22.   else
  23.     begin
  24.     Result := ExitWindowsEx(flag,0);
  25.     Application.Terminate;
  26.   end;
  27. end;
  28.  

kullanımı
Kod: Delphi
  1. haydibakalim(1);

win 7 de kapatıyor ...
yıllar önce biyerlerden bulduğum bi kod halen daha kullanırım :d:D




Amatör Küme Programcı

Çevrimdışı cihatozdemir

  • Yeni Üye
  • *
  • İleti: 10
  • Rep: +0/-0
Ynt: Tüm Windows Platformları kapatmak....
« Yanıtla #3 : 24 Aralık 2009 15:40:50 »
teşk ederim ali:)