(16/06/2017, 08:14)burhanb yazdı: merhaba.
ben shift tuşunu engelliyorum.
bu program engeli kaldırıyor. kesinlikte shift tuşu çalışmasını istemiyorum.
kimse açamasın.
O zaman mde yapın programınızı. Kimse açamaz.
(16/06/2017, 08:14)burhanb yazdı: merhaba.
ben shift tuşunu engelliyorum.
bu program engeli kaldırıyor. kesinlikte shift tuşu çalışmasını istemiyorum.
kimse açamasın.
(28/03/2018, 17:35)cevahir1 yazdı: m bilgisayarım windows 10 ve 64 bit bu dosya çalışmıyor. Ne yapmam lazım...
(26/11/2013, 11:18)mehmetdemiral yazdı: Modüllerdeki api declaration satırlarında PTRSAFE deyimini kullanmalısınız. Hem 32 hem de 64 bit'te çalışması için mesela aşağıdaki biçimde olan kodları
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
şu şekilde değiştirin:
Böylece 32 bit için de 64 bit içinm de sorun ortadan kalkar.
#If VBA7 Then
Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#Else
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If
Bunu eklemeniz gerektiğini nereden mi anlayacaksınız?
Modüllerde "private declare" ile başlayan kodlarda api kullanıldığı için 64 bit için sorun çıkar. Çünkü iki işletim sisteminde kullanılan api mantığı farklıdır. 32 bitlik işletim sisteminde kullanılan kodları yukarda verdiğim biçime dönüştürdüğünüzde her iki sistemde de sorunsuz çalışacaktır.
Bir uyarı: Eğer modülde Declare Function biçimi başında "private" olmadan kullanıldıysa o zaman da yine ptrsafe deyimini declare komutundan hemen sonra kullanmalısınız. Bir örnek vereyim:
kodumuz şöyle olsun
Bu durumda ptrsafe nereye gelecek? Private declare'de hemen declare'den sonra kullanmıştık. Burada da aynı şekilde
Declare Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
(ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
#If VBA7 Then
Declare PtrSafe Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
(ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
#Else
Declare Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
(ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
#End If
Sonuçta her iki kullanımda da unutmamamanız gereken şey ptrsafe'yi declare sözcüğünden sonra kullanmak.