Form ile uygulama açma ve kapatma

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Rona
Üye
Mesajlar: 1
Kayıt: 17 Ara 2019 11:47

Form ile uygulama açma ve kapatma

Mesaj gönderen Rona »

Merhaba, form uygulaması içinde butonlar ile uygulama açmak ve kapatmak istiyorum. Uygulama açmada sorun yaşamıyorum ShellApi ile işimi görüyorum ama uygulama kapatma kısmını bir türlü bulamadım. Delphi 10.3 kullanıyorum. Daha önceki konuları da araştırdım ama bulamadım. Yardımlarınız için şimdiden teşekkürler :wink:
Alpermete
Üye
Mesajlar: 1
Kayıt: 22 Nis 2020 12:00

Re: Form ile uygulama açma ve kapatma

Mesaj gönderen Alpermete »

Şeklinde deneyebilirsin
Bu fonksiyonu gerekli bölgeye yazdıktan sonra
Kullanımı:

Kod: Tümünü seç

KillTask("C:\Kapatmakistediğinuygulama.exe");

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;
Cevapla