Görev Yöneticisinde Çalışan Programı Kapatan API

API - Application Programming Interface
Yazılım Programlama Arayüz Uygulaması

Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#1)  Tarkan VURAL » 30 Mar 2011 22:59

VB ile bir program yazarken Excel ile ilişkişlendirdim ve arka planda çalışmasını sağladım. Ancak çıkışta ne yaparsam yapayım Görev Yöneticisinde çalışmamasını engelleyemedim.

Quit, Nothing, Close gibi hiç bir özellik ile Excel.Exe 'nin sonlandırılmasını sağlayamadım.
Bunun üzerine Görev Yöneticisinden API ile program sonlandırmayı deneyeyim dedim, adapte ettim ve çalıştı. Örnek kodlamayı paylaşayım, ihtiyacı olanlar kullansınlar. Bu API ile her programın pencere adını buldurarak Görev Yöneticisinden sonlandırma işlemini yaparak programı kapatabiliyorsunuz.

API Deklerasyonumuz :

Kod: Tümünü seç
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Private Const EVN_KAPAT = 16


İşi yapacak olan kodlamamız :
Kod: Tümünü seç
Private Sub GorevYoneticisindenSonlandır(ByVal pencereadi As String)
       Dim pencereHwnd As Long
       pencereHwnd = FindWindow(vbNullString, pencereadi)
       If pencereHwnd <> 0 Then
          PostMessage pencereHwnd, EVN_KAPAT, 0&, 0&
       Else
           MsgBox "Aradığınız türde bir uygulama bulunamadı" & vbCr & _
           "Aranan Uygulama : " & pencereadi, vbExclamation, "Www.ExcelVBA.Net"
       End If
End Sub


İşi yapacak kodlamayı tetikleyecek durum ( Ben kodlamanın UserForm kapanması ile çalışmasını ve Uygulama adı pencere değeri olan Microsoft Access olanı sonlandırsın dedim. Dileyen dilediği olayda, dilediği programı sonlandırmak için kullanabilir. Hesap Makinesi, Microsoft Word, Windows Live Messenger gibi programlar olabilir ya da açık olan bir klasörünüz olabilir C:\Windows\Drivers gibi mesela ;;_) Açık olan pencerenin Title Bar kısmındaki adını görerek kodlamanıza adapte edebilirsiniz. )

Kod: Tümünü seç
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
GorevYoneticisindenSonlandır "Microsoft Access"
End Sub
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 45
İleti: 26990
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#2)  Hamdi UNAL » 31 Mar 2011 07:36

Elinize sağlık Tarkan bey,

İhtiyacımız olan bir kod yapısı.

Paylaşımınız için teşekkürler.
Kullanıcı avatarı
Hamdi UNAL
Site Dostu
 
Adı Soyadı:Hamdi Ünal
Kayıt: 01 Haz 2009 16:37
Yaş: 40
İleti: 616
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul-Üsküdar-Çengelköy

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#3)  Erhan Yavuz » 31 Mar 2011 08:13

Harika, çok teşekkürler kardeşim.. şkşk [mersi]
☾✭ Türkçemizi tam ve doğru kullanmaktan korkmayalım..
Teşekkür etmek Erdemdir. ECYavuz


OSMANLI OYUNU (1402-1566)
http://www.excelvba.net/viewtopic.php?f=41&t=9984

EXCEL-VBA KOD BANKASI PRO.7.0
http://www.excelvba.net/viewtopic.php?f=38&t=3304
Resim
Kullanıcı avatarı
Erhan Yavuz
Site Forum Yöneticisi
 
Adı Soyadı:Erhan Yavuz
Kayıt: 15 Haz 2008 00:13
Konum: Etiler / İstanbul
Meslek: Emekli Sb.
Yaş: 60
İleti: 5695
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Etiler

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#4)  feraz » 20 Kas 2016 21:49

Merhabalar.

Kodları kendi örnek dosyama uyarladım.
Çalıştı.Fakat tüm açık olan excel leri kapatıyor görev yöneticisinden.
Koduda alttaki gibi uyarladım.

Acaba resimdeki gibi sadece 6868-Excel olan kapatılamaz mı?

Saygılar.


Kod: Tümünü seç
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
    Private Const EVN_KAPAT = 16
   
   
        Private Sub GorevYoneticisindenSonlandır(ByVal pencereadi As String)
           Dim pencereHwnd As Long
           pencereHwnd = FindWindow(vbNullString, pencereadi)
           If pencereHwnd <> 0 Then
              PostMessage pencereHwnd, EVN_KAPAT, 0&, 0&
          ThisWorkbook.Save
           End If
    End Sub

Sub kapat()
   GorevYoneticisindenSonlandır "Excel"
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5907
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#5)  Murat OSMA » 20 Kas 2016 23:26

Dosyaadınız.xls yerine kendi dosya adınızı yazın.

Kod: Tümünü seç
Sub Emre()
    Workbooks("Dosyaadınız.xls").Close
End Sub
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 04 Arl 2008 22:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 34
İleti: 14336
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#6)  feraz » 20 Kas 2016 23:31

Murat hocam bu kod api kodlarından bağımsızmı olacak ?
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5907
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Cevap: Görev Yöneticisinde Çalışan Programı Kapatan A

İleti#7)  feraz » 20 Kas 2016 23:52

Murat OSMA yazdı:Dosyaadınız.xls yerine kendi dosya adınızı yazın.

Kod: Tümünü seç
Sub Emre()
    Workbooks("Dosyaadınız.xls").Close
End Sub


Kod exceli tüm kaptmıyor.
Application.Quit yapıncada tüm excel kapanıyor.
Bana sadece kodun çalıştığı excelin tüm kapanması lazım.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5907
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#8)  feraz » 21 Kas 2016 00:31

Alttaki kod ile çözüme kavuştum.

Kod: Tümünü seç
Sub kapat()
    Select Case Excel.Windows.Count
        Case 1
            Workbooks("xxx.xlsm").Save
            Application.Quit
        Case Is > 1
           Workbooks("xxx.xlsm").Save
           Workbooks("xxx.xlsm").Close
    End Select
End Sub
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5907
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#9)  Murat OSMA » 21 Kas 2016 00:40

Tebrikler. --)(
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 04 Arl 2008 22:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 34
İleti: 14336
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#10)  feraz » 21 Kas 2016 00:52

Sağolunuz --)(
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5907
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#11)  feraz » 25 Kas 2016 15:33

Acaba birde Api ile çözüm yo mudur?
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5907
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#12)  Tarkan VURAL » 19 Arl 2016 09:31

Excel' in kendi yetenekleri işlemi çözüyorsa, Windows API desteğine ihtiyacınız yoktur. ;)
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 45
İleti: 26990
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#13)  feraz » 19 Arl 2016 11:00

Olsaydı iyi olacaktı.
Kodlar önceki mesajda yazdığım kodlar sonradan ihanet etti bana :)
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5907
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#14)  yerbakili » 09 Şub 2019 20:52

Merhaba,

Biraz araştırdım ama bulamadım. Görev Yöneticisinde "Uygulamalar" bölümünde yer alan listeyi nasıl alabiliriz? Kısacası, başka bir yerde kullanılmak üzere çalışan uygulamaların pencere isimlerini listelemem gerekiyor. Görsel ektedir.

Görev_yöneticisi.jpg
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
yerbakili
Siteye Alışmış
 
Adı Soyadı:Yasin ERBAKILI
Kayıt: 17 Tem 2009 00:26
Konum: ...
Meslek: Memur
Yaş: 31
İleti: 287
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İzmir

Cevap: Görev Yöneticisinde Çalışan Programı Kapatan API

İleti#15)  yerbakili » 09 Şub 2019 22:45

Söndürüldü. :lol:

Murat Bey'in açtığı viewtopic.php?f=50&t=11827 bu konudan temin ettim kodları. [mersi]
Kullanıcı avatarı
yerbakili
Siteye Alışmış
 
Adı Soyadı:Yasin ERBAKILI
Kayıt: 17 Tem 2009 00:26
Konum: ...
Meslek: Memur
Yaş: 31
İleti: 287
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İzmir


Forum Excel ve API

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe