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 » 31 Mar 2011 00: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 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
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 09: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 18: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 10: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 02:13
Konum: Etiler / İstanbul
Meslek: Emekli Sb.
Yaş: 59
İ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 23: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 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5473
 
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 » 21 Kas 2016 01: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: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

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

İleti#6)  feraz » 21 Kas 2016 01:31

Murat hocam bu kod api kodlarından bağımsızmı olacak ?
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5473
 
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 » 21 Kas 2016 01: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 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5473
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

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

İleti#8)  feraz » 21 Kas 2016 02: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 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5473
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

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

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

Tebrikler. --)(
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
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 02:52

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

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

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

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

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

İleti#12)  Tarkan VURAL » 19 Arl 2016 11: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 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
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 13: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 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5473
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray


Forum Excel ve API

Online Kullanıcılar

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

cron
Bumerang - Yazarkafe