########################### Son Düzenleme 22 Temmuz 2004 Perşembe - 09:32

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    blok_listesine_ekle: TButton;
    liste1: TListBox;
    surekli_prog_katlet: TButton;
    prog_kapat: TButton;
    Timer1: TTimer;
    liste2: TListBox;
    ListedenCikart: TButton;
    ayrintilar: TButton;
    basit: TButton;
    PopupMenu1: TPopupMenu;
    BlokListesineEkle1: TMenuItem;
    yukari_yolla: TSpeedButton;
    asagi_yolla: TSpeedButton;
    ListedenKaldir_liste1: TMenuItem;
    PopupMenu2: TPopupMenu;
    ListedenKaldir_Liste2: TMenuItem;
    BlokListesineEkle2: TMenuItem;
    dur: TButton;
    Timer2: TTimer;
    TrayIcon1: TTrayIcon;
    ImageList1: TImageList;
    PopupMenu3: TPopupMenu;
    ProgramiGoster_menu: TMenuItem;
    ProgramiKapat_menu: TMenuItem;
    TaramayiBaslat_menu: TMenuItem;
    TaramayiDurdur_menu: TMenuItem;
    ProgramiGizle_menu: TMenuItem;
    SpeedButton3: TSpeedButton;
    Listeyi_kaydet: TButton;
    listeden_yukle: TButton;
    Label1: TLabel;
    kisalt: TButton;
    Uzat: TButton;
    procedure blok_listesine_ekleClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure prog_kapatClick(Sender: TObject);
    procedure ayrintilarClick(Sender: TObject);
    procedure basitClick(Sender: TObject);
    procedure ListedenCikartClick(Sender: TObject);
    procedure surekli_prog_katletClick(Sender: TObject);
    procedure yukari_yollaClick(Sender: TObject);
    procedure asagi_yollaClick(Sender: TObject);
    procedure ListedenKaldir_liste1Click(Sender: TObject);
    procedure ListedenKaldir_Liste2Click(Sender: TObject);
    procedure durClick(Sender: TObject);
    procedure secClick(Sender: TObject);
    procedure ProgramiGoster_menuClick(Sender: TObject);
    procedure ProgramiKapat_menuClick(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure Listeyi_kaydetClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ProgramiGizle_menuClick(Sender: TObject);
    procedure listeden_yukleClick(Sender: TObject);
    procedure kisaltClick(Sender: TObject);

  private
    { Private declarations }
  public

  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.blok_listesine_ekleClick(Sender: TObject);
var 
  HFare : HWND;
  HSonrakiWinMsg:HWND;
  isaretleyici : TPOINT; 
  baslikUzunlugu : integer; 
  baslik : string;
begin
  GetCursorPos(isaretleyici);
  HFare := WindowFromPoint(isaretleyici); 
  if HFare = HSonrakiWinMsg then Exit;
  HSonrakiWinMsg := HFare; 
  baslikUzunlugu := SendMessage(HFare, WM_GETTEXTLENGTH, 0, 0) + 1; 
  SetLength(baslik, baslikUzunlugu); 
  SendMessage(HSonrakiWinMsg, WM_GETTEXT, baslikUzunlugu,LongInt(@baslik[1]));
if length(baslik) <> 1 then
begin
        liste1.items.add(baslik)
        end
else
showmessage('Boş Başlık Ekleyemezsiniz - İmlecin Pencere başlığında olduğundan emin olun');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
basit.click;
listeden_yukle.click;
end;

procedure ProgramKapat(Baslik:String);
Var
  h : THandle;
begin
h := FindWindow( nil, PChar(Baslik));
if h <> 0 then PostMessage(h, WM_CLOSE, 0, 0);
end;

procedure TForm1.prog_kapatClick(Sender: TObject);
begin
if not liste2.itemindex = -1 then
        begin
        ProgramKapat(liste2.items[0]);
        liste2.Items.Move(Liste2.ItemIndex,Liste2.Items.Count-1);
        end
else
        begin
        end
end;

procedure TForm1.ayrintilarClick(Sender: TObject);
begin
uzat.visible:=false;
ayrintilar.visible:=false;
form1.borderstyle:=BsSingle;
form1.height:=335;
form1.width:=255;
end;

procedure TForm1.basitClick(Sender: TObject);
begin
ayrintilar.visible:=true;
ayrintilar.top:=0;
ayrintilar.left:=0;
form1.borderstyle:=BsToolWindow;
form1.height:=47;
form1.width:=126;
end;

procedure TForm1.ListedenCikartClick(Sender: TObject);
begin
liste2.Items.Delete(liste2.itemindex);
end;

procedure TForm1.surekli_prog_katletClick(Sender: TObject);
begin
taramayibaslat_menu.enabled:=false;
TaramayiDurdur_menu.enabled:=true;
dur.enabled:=true;
surekli_prog_katlet.enabled:=false;
timer2.enabled:=true;
timer1.enabled:=true;
end;

procedure TForm1.yukari_yollaClick(Sender: TObject);
begin
if liste2.itemindex = -1 then
        begin
        showmessage('Önce Listeden Program Seç');
        end
else
        begin
        liste1.items.Add(liste2.items[liste2.itemindex]);
        liste2.items.Delete(liste2.itemindex)
        end
end;

procedure TForm1.asagi_yollaClick(Sender: TObject);
begin
if liste1.itemindex = -1 then
        begin
        showmessage('Seç');
        end
else
        begin
        liste2.items.Add(liste1.items[liste1.itemindex]);
        liste1.items.Delete(liste1.itemindex)
        end;
end;

procedure TForm1.ListedenKaldir_Liste1Click(Sender: TObject);
begin
liste1.items.Delete(liste1.itemindex);
liste1.itemindex:=0
end;

procedure TForm1.ListedenKaldir_Liste2Click(Sender: TObject);
begin
liste2.items.Delete(liste2.itemindex);
listeyi_kaydet.click;
end;

procedure TForm1.durClick(Sender: TObject);
begin
surekli_prog_katlet.enabled:=true;
taramayibaslat_menu.enabled:=true;
TaramayiDurdur_menu.enabled:=false;
dur.enabled:=false;
timer1.enabled:=false;
timer2.enabled:=false;
end;

procedure TForm1.secClick(Sender: TObject);
begin
liste2.ItemIndex:=0;
end;

procedure TForm1.ProgramiGoster_menuClick(Sender: TObject);
begin
programigizle_menu.enabled:=true;
programigoster_menu.enabled:=false;
form1.show;
end;

procedure TForm1.ProgramiKapat_menuClick(Sender: TObject);
begin
form1.close;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if liste1.itemindex = -1 then
        begin
        showmessage('Önce Blok Listesine Program Ekle');
        end
else
        begin
        liste2.items.add(liste1.Items[liste1.itemindex]);
        liste1.items.Delete(liste1.itemindex);
        listeyi_kaydet.click;
        prog_kapat.Click;
        end
end;

procedure TForm1.Listeyi_kaydetClick(Sender: TObject);
begin
liste2.items.savetoFile(extractfilepath(application.exename)+'kill.txt')
end;

procedure TForm1.FormShow(Sender: TObject);
begin
trayicon1.active:=true;
end;

procedure TForm1.ProgramiGizle_menuClick(Sender: TObject);
begin
programigizle_menu.enabled:=false;
programigoster_menu.enabled:=true;
form1.hide;
end;

procedure TForm1.listeden_yukleClick(Sender: TObject);
begin
        if fileexists(extractfilepath(application.exename)+'kill.txt') then
        begin
        liste2.items.LoadFromFile(extractfilepath(application.exename)+'kill.txt')
        end
else
        begin
        liste2.clear;
        listeyi_kaydet.click;
        end
end;

procedure TForm1.kisaltClick(Sender: TObject);
begin
uzat.visible:=true;
form1.height:=form1.height - 160
end;

end.

    Source: geocities.com/webdeppo2