iki liste arasında karşılaştırma yapmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sadikacar60
Üye
Mesajlar: 83
Kayıt: 28 Ara 2017 04:14
İletişim:

iki liste arasında karşılaştırma yapmak

Mesaj gönderen sadikacar60 »

arkadaşlar programım çalıştığı andan sonra açılan tüm uygulamaları kapatmak istiyorum .sadece benim programım çalışacak.
program çalıştığı anda o anda çalışan programları bir listeye atıyorum.
sonra timer ile 1 dk aralıklarla programları kontrol etmem lazım.
yeni açılan program varsa tespit edip kapatmam lazım.

iki listeyi karşılaştırıp farklı olanları pratik bir şekilde dışarı çıkartabilirmiyiz.

saygılarımla

Kod: Tümünü seç

Function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
var Title, ClassName: array[0..255] of char; PrID : Integer;
begin
say:=say+1;
Result := True; GetWindowText(wHandle, Title, 255);
GetClassName(wHandle, ClassName, 255); GetWindowThreadProcessId(wHandle, @PrID);
if IsWindowVisible(wHandle) then  _s1.add(Title);
end;

Kod: Tümünü seç

Function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
var Title, ClassName: array[0..255] of char; PrID : Integer;
begin

Result := True; GetWindowText(wHandle, Title, 255);
GetClassName(wHandle, ClassName, 255); GetWindowThreadProcessId(wHandle, @PrID);
if IsWindowVisible(wHandle) then  _s2.Add(Title);
end;

Kod: Tümünü seç

procedure TfrmMain.Timer1Timer(Sender: TObject);
var
d1,d2:integer;
j:integer;
begin
//program açılırken diziye atılan başlanğıç programlarıyla
//sonradan açılan programları karşılartır.  yeni açılan bir program varsa kapat
EnumWindows(@EnumWindowsProc, 1); //her 5 sn de bir programları al karşılaştırma yap yeni program açıldıysa kapat
d1:=_s1.Count;
d2:=_s2.Count;

Label2.Caption:=IntToStr(d1);
Label3.Caption:=IntToStr(d2);

if AnsiMatchStr('Two', _s1) then
    ShowMessage('It contains Two');

end;
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: iki liste arasında karşılaştırma yapmak

Mesaj gönderen mkysoft »

TList obje tipinde extract özelliği bulunuyor, bu özellik listleri bir birinden çıkarmanızı sağlar. bu özelliği kullanabilirsiniz.
sadikacar60
Üye
Mesajlar: 83
Kayıt: 28 Ara 2017 04:14
İletişim:

Re: iki liste arasında karşılaştırma yapmak

Mesaj gönderen sadikacar60 »

veritabanı ile hallettim ama pc yi yavaşlatacak gibi tam olarak deneyemedim bakalım

teşekkürler
Cevapla