[VBA] açık pdf dosyasını kapatma vba kodu
#1
Merhaba,
Ben Access 2016 Türkçe kullaniyorum. Form üzerinde bir buton ekledim. Butona basınca açık olan "c:\bbb.pdf" dosyasını kapatmasını istiyorum.
(not:Bir çok kod araştırdım denedim olmadı, Access kütüphanesinde neleri aktif etmeliyim?, Public Function dosyaKapat()
Workbooks("c:\bbb.pdf").Close SaveChanges:=False
End Function)

Saygılarımla,
teşekkür ederim.



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba sn ssdestekk,
belirtmiş olduğunuz işlem sıradan bir işlem olmadığı için bazı fonksiyonlar tanıtmanız gerekmektedir. Aşağıdaki kodu Uygulamanız içerisinde boş bir modül oluşturup kopyalayınız.
Ardından nasıl kullanılacağını açıklayacağım.
Visual Basic
  1. Private Const WM_CLOSE = &H10
  2. Private Const INFINITE = &HFFFFFFFF
  3.  
  4. Private Declare Function apiPostMessage _
  5. Lib "user32" Alias "PostMessageA" _
  6. (ByVal Hwnd As Long, _
  7. ByVal wMsg As Long, _
  8. ByVal wParam As Long, _
  9. lParam As Any) _
  10. As Long
  11.  
  12. Private Declare Function apiFindWindow _
  13. Lib "user32" Alias "FindWindowA" _
  14. (ByVal lpClassname As String, _
  15. ByVal lpWindowName As String) _
  16. As Long
  17.  
  18. Private Declare Function apiWaitForSingleObject _
  19. Lib "kernel32" Alias "WaitForSingleObject" _
  20. (ByVal hHandle As Long, _
  21. ByVal dwMilliseconds As Long) _
  22. As Long
  23.  
  24. Private Declare Function apiIsWindow _
  25. Lib "user32" Alias "IsWindow" _
  26. (ByVal Hwnd As Long) _
  27. As Long
  28.  
  29. Private Declare Function apiGetWindowThreadProcessId _
  30. Lib "user32" Alias "GetWindowThreadProcessId" _
  31. (ByVal Hwnd As Long, _
  32. lpdwProcessID As Long) _
  33. As Long
  34.  
  35. Function UygulamaKapat(lpClassname As String) As Boolean
  36. Dim lngRet As Long, Hwnd As Long, pID As Long
  37.  
  38. Hwnd = apiFindWindow(lpClassname, vbNullString)
  39. If (Hwnd) Then
  40. lngRet = apiPostMessage(Hwnd, WM_CLOSE, 0, ByVal 0&)
  41. Call apiGetWindowThreadProcessId(Hwnd, pID)
  42. Call apiWaitForSingleObject(pID, INFINITE)
  43. UygulamaKapat= Not (apiIsWindow(Hwnd) = 0)
  44. End If
  45. End Function



PDF yi kapatma butonunuzun Click olayına aşağıdaki ifadeyi yazın.
Visual Basic
  1. UygulamaKapat("AcrobatSDIWindow")



Eğer sorun olursa tekrar bakarım.



  Alıntı
Bu mesajı beğenenler:
#3
(15-11-2018, 14:34)onur_can demiş ki: Merhaba sn ssdestekk,
belirtmiş olduğunuz işlem sıradan bir işlem olmadığı için bazı fonksiyonlar tanıtmanız gerekmektedir. Aşağıdaki kodu Uygulamanız içerisinde boş bir modül oluşturup kopyalayınız.
Ardından nasıl kullanılacağını açıklayacağım.
Visual Basic
  1. Private Const WM_CLOSE = &H10
  2. Private Const INFINITE = &HFFFFFFFF
  3.  
  4. Private Declare Function apiPostMessage _
  5. Lib "user32" Alias "PostMessageA" _
  6. (ByVal Hwnd As Long, _
  7. ByVal wMsg As Long, _
  8. ByVal wParam As Long, _
  9. lParam As Any) _
  10. As Long
  11.  
  12. Private Declare Function apiFindWindow _
  13. Lib "user32" Alias "FindWindowA" _
  14. (ByVal lpClassname As String, _
  15. ByVal lpWindowName As String) _
  16. As Long
  17.  
  18. Private Declare Function apiWaitForSingleObject _
  19. Lib "kernel32" Alias "WaitForSingleObject" _
  20. (ByVal hHandle As Long, _
  21. ByVal dwMilliseconds As Long) _
  22. As Long
  23.  
  24. Private Declare Function apiIsWindow _
  25. Lib "user32" Alias "IsWindow" _
  26. (ByVal Hwnd As Long) _
  27. As Long
  28.  
  29. Private Declare Function apiGetWindowThreadProcessId _
  30. Lib "user32" Alias "GetWindowThreadProcessId" _
  31. (ByVal Hwnd As Long, _
  32. lpdwProcessID As Long) _
  33. As Long
  34.  
  35. Function UygulamaKapat(lpClassname As String) As Boolean
  36. Dim lngRet As Long, Hwnd As Long, pID As Long
  37.  
  38. Hwnd = apiFindWindow(lpClassname, vbNullString)
  39. If (Hwnd) Then
  40. lngRet = apiPostMessage(Hwnd, WM_CLOSE, 0, ByVal 0&)
  41. Call apiGetWindowThreadProcessId(Hwnd, pID)
  42. Call apiWaitForSingleObject(pID, INFINITE)
  43. fCloseApp = Not (apiIsWindow(Hwnd) = 0)
  44. End If
  45. End Function



PDF yi kapatma butonunuzun Click olayına aşağıdaki ifadeyi yazın.
Visual Basic
  1. UygulamaKapat("AcrobatSDIWindow")



Eğer sorun olursa tekrar bakarım.
-------------------------

MERHABA, DENEDİM OLMADI.
DOSYAYI EKLEYIP GÖNDRIYORUM. DOSYA ÜZERİNDE YAPIP DENEYEBİLİRSİN






MERHABA, DENEDİM OLMADI.
DOSYAYI EKLEYIP GÖNDRIYORUM. DOSYA ÜZERİNDE YAPIP DENEYEBİLİRSİN



Eklenti Dosyaları
.zip   TESTT.zip (Boyut: 163,03 KB / İndirilme: 72)



  Alıntı
Bu mesajı beğenenler:
#4
Merhaba,
verdiğiniz kodu sonunda çalıştırabildim, benim hatam. Teşekkür ederim.

Fakat birden fazla PDF dosya açık ise soru soruyor hangisini kapatalım diye, soru sormadan tümü PDF dosyaları kapatsın istiyorum, bunun için nasıl bir kod ilave etmek gerekir ?



  Alıntı
Bu mesajı beğenenler:
#5
Bir kaç tane PDF dosyası açın daha sonra bir tanesini kapatın bu esnada size Her zaman tüm sekmeleri kapat penceresi çıkacaktır. Burada onay kutusunu işaretleyin. kod içinde ayrıca bir süzenleme yapmanıza gerek yok. Bundan sonra kod çalıştığında tüm PDF ler kapanacaktır.



  Alıntı
Bu mesajı beğenenler:
#6
dosyadaki hatalar giderildi


Eklenti Dosyaları
.rar   TESTT_Düzenlenmiş.rar (Boyut: 51,48 KB / İndirilme: 74)



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Access Uygulamasından Bilgisayardaki Açık Uygulamaları Kapatmak. ŞabanTR 8 262 11-12-2023, 20:20
Son Mesaj: ŞabanTR
  [FORM] Diğer Kullanıcılar Programı Kullanıyorken Kapatma snapper 9 436 11-07-2023, 21:09
Son Mesaj: dsezgin
  [VBA] Yıl Ay Sayı Sıralama Kodu Hakkında Ahmet51 6 307 29-05-2023, 09:31
Son Mesaj: halily
  [SORGU] Sql Kodu Ahmet51 10 593 11-04-2023, 19:01
Son Mesaj: dsezgin
  ürün Kodu ankaram 2 116 09-12-2022, 20:46
Son Mesaj: ankaram
  [SORGU] Sözdizimi Hata Kodu Alıyorum golf2000 12 456 29-08-2022, 20:00
Son Mesaj: halily
  [FORM] Sipariş Kodu Oluşturma alikagan 4 232 02-06-2022, 21:59
Son Mesaj: alikagan
  [VBA] Bat Dosyasını Gizli Modda çalıştırma hedefkaya 3 167 17-04-2022, 13:41
Son Mesaj: hedefkaya

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi