Exe sonlandırmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Exe sonlandırmak
merhaba sorum su;
shellexecute ile actıgım bir dosyayı nasıl sonlandırırım. yardımlarınız icin simdiden tesekkurler
shellexecute ile actıgım bir dosyayı nasıl sonlandırırım. yardımlarınız icin simdiden tesekkurler
- hacker_10-ur
- Üye
- Mesajlar: 27
- Kayıt: 05 Oca 2008 10:05
üsdat işine yarar diye düşünüyorum....(YANLIZ KODLARI DENEMEDİM...)
Kod: Tümünü seç
uses
Tlhelp32;
function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while Integer(ContinueLoop) <> 0 do begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
DELPHI - C ++
PASCAL - TURBO C
PASCAL - TURBO C
hadi yaa gercekden mi diyorsun tavsiye olarak fisi cek demedigin ne kadar guzel...
hacker_10-ur kardesim kod icin saol canavar gibi calısıyor.ilk basda full path olmadı sonra exeyi programın bulundugu klasorden calsıtırrp denedim ve oldu.
KillTask('abc.exe'); yazmam yeterli oldu tesekkur ederim anlayısından ve cevabından dolayı

hacker_10-ur kardesim kod icin saol canavar gibi calısıyor.ilk basda full path olmadı sonra exeyi programın bulundugu klasorden calsıtırrp denedim ve oldu.
KillTask('abc.exe'); yazmam yeterli oldu tesekkur ederim anlayısından ve cevabından dolayı
emozguner yazdı:hadi yaa gercekden mi diyorsun tavsiye olarak fisi cek demedigin ne kadar guzel...![]()
hacker_10-ur kardesim kod icin saol canavar gibi calısıyor.ilk basda full path olmadı sonra exeyi programın bulundugu klasorden calsıtırrp denedim ve oldu.
KillTask('abc.exe'); yazmam yeterli oldu tesekkur ederim anlayısından ve cevabından dolayı
killtask kodu uygulamada açık olan verileri kaydetme şansı vermez

Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- hacker_10-ur
- Üye
- Mesajlar: 27
- Kayıt: 05 Oca 2008 10:05
önemli değil arkadaşım.... eğer açtığın programda veri kaydetmek istiyorsan programa tuş yollayabilirsin... şöyle
Kod: Tümünü seç
function SendKeys(ClassOrCaption:PChar;Keys:array of Integer):Boolean;
var
hW:HWND;
Ix:Integer;
begin
hW:=FindWindow(ClassOrCaption,nil);
if hW<=0 then hW:=FindWindow(nil,ClassOrCaption);
Result:=hW>0;
if Result then begin
Result:=SetForeGroundWindow(hW);
if not Result then Exit;
for Ix:=0 to High(Keys) do KeyBd_Event(Keys[Ix], 0, 0, 0);
for Ix:=High(Keys) downto 0 do Keybd_Event(Keys[Ix], 0, KEYEVENTF_KEYUP, 0);
end;
end;
örnek:
SendKeys('Hesap Makinesi', [VK_Menu, VK_F4]);
DELPHI - C ++
PASCAL - TURBO C
PASCAL - TURBO C
- tanerileri
- Üye
- Mesajlar: 55
- Kayıt: 06 Tem 2007 11:30
benim kullandığım 2 ayrı prosedürde şöyle.
procedure ProgramKapat(Pencere: string);
const
PROCESS_TERMINATE = $0001;
var
Hnd: THandle;
No: Integer;
OPencere: HWND;
begin
OPencere := FindWindow(nil, Pchar(Pencere));
GetWindowThreadProcessID(OPencere, @No);
Hnd := OpenProcess(PROCESS_TERMINATE, FALSE, No);
TerminateProcess(Hnd, 4);
end;
procedure KillApp(const sCapt: PChar); // ProgramKapatla aynı ama , Trayde varsa, onuda tazeliyor.
var AppHandle: THandle;
begin
AppHandle := FindWindow(nil, sCapt);
PostMessage(AppHandle, WM_DESTROY, 0, 0);
end;
kullanılışı ; ProgramKapat('Resimgor'); sadece pencere adı yani maninform caption yeterli. exe ye gerek yok
const
PROCESS_TERMINATE = $0001;
var
Hnd: THandle;
No: Integer;
OPencere: HWND;
begin
OPencere := FindWindow(nil, Pchar(Pencere));
GetWindowThreadProcessID(OPencere, @No);
Hnd := OpenProcess(PROCESS_TERMINATE, FALSE, No);
TerminateProcess(Hnd, 4);
end;
procedure KillApp(const sCapt: PChar); // ProgramKapatla aynı ama , Trayde varsa, onuda tazeliyor.
var AppHandle: THandle;
begin
AppHandle := FindWindow(nil, sCapt);
PostMessage(AppHandle, WM_DESTROY, 0, 0);
end;
kullanılışı ; ProgramKapat('Resimgor'); sadece pencere adı yani maninform caption yeterli. exe ye gerek yok
Arkadaşım ;hacker_10-ur yazdı:önemli değil arkadaşım.... eğer açtığın programda veri kaydetmek istiyorsan programa tuş yollayabilirsin... şöyle
örnek:
SendKeys('Hesap Makinesi', [VK_Menu, VK_F4]);
[/code]
Kod anlamında bu olay için sorun yok; sadece bazı konularında aydınlatılması gerek; amam ctrl-s tuşunu gönderdi ama dosya 30 mb.. daha kaydın başında birde killtask yaparsa ne olur?
demem o ki konunun geri planını bilmeden alıp kullanan birisinin sonradan başı ağrımasın.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog