[FORM] Inputbox Kutusuna Girilen Değere Pasword Maske Uygulama
#1
Selamlar, kolay gelsin arkadaşlar ekteki örnek Vt de açılan formdaSil butonuna basıldığında çıkan İnputBox kutusuna girilen değere PASWORD  giriş maskesi  uygulayabilirmiyiz. Değer yazlırken başkası tarafından okunmasın. Saygılarımla.


Eklenti Dosyaları
.rar   Örn InputBox.rar (Boyut: 16,96 KB / İndirilme: 13)



  Alıntı
Bu mesajı beğenenler:
#2
Modul olusturun, aşağıdaki kodu(PAROLA) modüle taşıyın.

Visual Basic
  1. Private Sub Komut0_Click()
  2.    If BicimInputBox("Lütfen bir şifre girin", "Şifre gerekli") = 123456 Then
  3.        MsgBox "Tamam"
  4.    Else
  5.        MsgBox "Tamam Değil"
  6.    End If
  7. End Sub





Visual Basic
  1. '**** PAROLA ***********
  2. Option Compare Database
  3. Option Explicit
  4. ' Tanım:
  5. ' Bu modül, gelişmiş bir Giriş Kutusu işlevi sağlamak üzere tasarlanmıştır.
  6. ' yıldız işaretiyle şifre girişi. oluşturmak için Windows API çağrılarından yararlanır.
  7. ' Bir Giriş Kutusunun aktivasyonunu engelleyen ve değiştiren kanca prosedürü
  8. ' bir şifre alanı gibi davranmak.
  9. ' BicimInputBox işlevi kullanıcıdan parola istemek için kullanılabilir
  10. ' ve kullanıcının girişini maskelenmiş bir dize olarak döndürür. Test alt yordamı şunları sağlar:
  11. ' Bu fonksiyonun nasıl çağrılacağına dair bir örnek.
  12. ' Sabit kodlanmış sınıf adı "#32770" Windows'taki iletişim kutularını tanımlamak için kullanılır,
  13. ' Giriş Kutusu dahil, böylece parola maskeleme karakteri ayarlanabilir.
  14. ' Kullanımı:
  15. ' Gerekli bilgi istemi ve isteğe bağlı başlıkla BicimInputBox işlevini çağırın
  16. ' Bir şifre Giriş Kutusu görüntülemek için. Döndürülen dizeyi kodunuzda gerektiği gibi kullanın.
  17.  
  18. #If VBA7 And Win64 Then
  19.  ' Kanca bilgisini zincirdeki bir sonraki işleyiciye iletir
  20.    Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal ncode As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr
  21.    ' Belirtilen modül için bir tanıtıcı elde eder
  22.    Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr
  23.   ' Mesajları izlemek için bir Windows kancası ayarlar
  24.    Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr
  25.    ' Windows kancasını çözer
  26.    Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hhk As LongPtr) As Long
  27.    ' Davranışını kontrol ederek bir diyalog öğesine bir mesaj gönderir
  28.    Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As LongPtr, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
  29.   ' Bir pencerenin sınıf adını alır
  30.    Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  31.   ' Geçerli iş parçacığının tanımlayıcısını alır
  32.    Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long
  33. #Else
  34.    Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
  35.    Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
  36.    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
  37.    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hhk As Long) As Long
  38.    Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  39.    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  40.    Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
  41. #End If
  42. #If VBA7 And Win64 Then
  43.    ' Kancayı yönetme kolu
  44.    Private hHook As LongPtr
  45. #Else
  46.    Private hHook As Long
  47. #End If
  48. ' Parola maskeleme karakterini ayarlama kodu
  49. Private Const EM_SETPASSWORDCHAR As Long = &HCC
  50. ' Windows kancalarını ve mesajlarını işlemek için sabitler
  51. Private Const WH_CBT As Long = 5
  52. Private Const HCBT_ACTIVATE As Long = 5
  53. Private Const HC_ACTION As Long = 0
  54. ' Amaç: Bir Giriş Kutusunun (veya iletişim kutusunun) etkinleştirilmesini engeller ve parola girişini yıldız işaretleriyle maskeleyecek şekilde değiştirir.
  55. ' Paramlar:
  56. ' - lngCode: Kanca kodunu belirtir
  57. ' - wParam: Pencerenin tanımlayıcısını belirtir
  58. ' - lParam: Mesajla ilgili ek bilgi (kanca koduna bağlıdır)
  59. ' Döndürür: Eğer lngCode HC_ACTION'dan küçükse zincirdeki bir sonraki kancanın döndürdüğü değer, aksi takdirde belirli bir değer döndürmez.
  60. #If VBA7 And Win64 Then
  61. Private Function NewProc(ByVal lngCode As Long, ByVal wParam As LongPtr, ByVal lParam As Long) As LongPtr
  62. #Else
  63. Private Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  64. #End If
  65.    On Error GoTo Err_Handler
  66.    Dim RetVal As Long                    ' GetClassName'in dönüş değerini tutar
  67.    Dim lngBuffer As Long                ' Sınıf adını tutacak arabelleğin boyutu
  68.    Dim strClassName As String      ' Sınıf adını almak için arabellek
  69.   ' Kanca kodu HC_ACTION'dan küçükse sonraki kancayı çağırın
  70.    If lngCode < HC_ACTION Then
  71.        NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)
  72.        Exit Function
  73.    End If
  74.   ' Pencerenin sınıf adı için bir arabellek hazırlayın
  75.    strClassName = String$(256, " ")
  76.    lngBuffer = 255
  77.   ' Kanca çağrısının pencere aktivasyonuna karşılık gelip gelmediğini kontrol edin
  78.    If lngCode = HCBT_ACTIVATE Then
  79.        ' Etkinleştirilen pencerenin sınıf adını alın
  80.        RetVal = GetClassName(wParam, strClassName, lngBuffer)
  81.        ' Sınıf adı bir iletişim kutusuna karşılık geliyorsa (sınıf adı "#32770" Windows'taki iletişim kutuları için standarttır),
  82.        ' Parola maskeleme karakterini ayarlayın. Bu kontrol, Giriş Kutusu penceresinin tanımlanmasına yardımcı olur.
  83.        If Left$(strClassName, RetVal) = "#32770" Then
  84.            SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0
  85.        End If
  86.    End If
  87.   ' Zincirdeki bir sonraki kancayı çağırarak işleme devam edin
  88.    CallNextHookEx hHook, lngCode, wParam, lParam
  89. Exit_Err_Handler:
  90.    Exit Function
  91. Err_Handler:
  92.    MsgBox "Error Number: " & Err.Number & vbCrLf & "Error Description: " & Err.Description & vbCrLf & "Procedure: NewProc", vbCritical + vbOKOnly, "NewProc - Error"
  93.    Resume Exit_Err_Handler
  94. End Function
  95. ' Amaç: Giriş Kutusu davranışını değiştirmek için bir Windows kancası kullanarak maskelenmiş parola girişi olan bir Giriş Kutusu görüntülemek.
  96. ' Paramlar:
  97. ' - İstem: Giriş Kutusunun içinde görünen metin dizesi istemi.
  98. ' - Başlık (İsteğe Bağlı): Giriş Kutusunun başlık çubuğunda görünen metin dizesi.
  99. ' Döndürür: Kullanıcının inputBox'tan maskelenmiş bir dize olarak girişi.
  100. Public Function BicimInputBox(ByVal Prompt As String, Optional ByVal Title As String = vbNullString) As String
  101.    On Error GoTo Err_Handler
  102.    #If VBA7 And Win64 Then
  103.        Dim lngModHwnd As LongPtr  ' Prosedürün bulunduğu modüle gidin
  104.    #Else
  105.        Dim lngModHwnd As Long     ' Prosedürün bulunduğu modüle gidin
  106.    #End If
  107.    Dim lngThreadID As Long         ' Geçerli iş parçacığının tanımlayıcısı
  108.   ' Kanca prosedürünün kurulacağı mevcut iş parçacığı kimliğini alın
  109.    lngThreadID = GetCurrentThreadId
  110.    ' Bağlanacak prosedürü içeren modülün modül tanıtıcısını alın
  111.    lngModHwnd = GetModuleHandle(vbNullString)
  112.    ' Giriş Kutusunun kancasını NewProc işlevine işaret ederek ayarlayın
  113.    hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)
  114.   ' Giriş kutusunu parola maskelemeyle yakalayarak belirtilen bilgi istemi ve başlıkla görüntüleyin
  115.    BicimInputBox = InputBox(Prompt, Title)
  116.   ' Girişi yakaladıktan sonra kancayı çıkarın, normal Giriş Kutusu davranışını geri yükleyin
  117.    UnhookWindowsHookEx hHook
  118. Exit_Err_Handler:
  119.    Exit Function
  120. Err_Handler:
  121.    MsgBox "Hata Numumarası: " & Err.Number & vbCrLf & "Hata Açıklaması: " & Err.Description & vbCrLf & "Prosedür: InputBiçimi", vbCritical + vbOKOnly, "Biçimlendirilmiş Giriş Kutusu - Hata"
  122.    Resume Exit_Err_Handler
  123. End Function





  Alıntı
Bu mesajı beğenenler: orderyazbim
#3
Sayın sezgin, yardımlarınız için teşekkür ederim, sorun vermiş olduğunuz vb ile çözüldü... Geç yanıtladığım için özür dilerim. Saygılarımla...



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Acceste Liste Kutusundan Seçilen Veriyi Metin Kutusuna Gönderme Pasham 24 333 04-04-2024, 01:18
Son Mesaj: halily
  Ms Access Uygulama Gelistirme Hizmeti dbpconsultant 2 171 19-01-2024, 16:36
Son Mesaj: dbpconsultant
  Bir Sütuna Girilen Verileri Başka Bir Sütun Ile Karşılaştırıp Hesaplama bilservisci 4 244 08-01-2024, 11:58
Son Mesaj: bilservisci
  [FORM] Metin Kutusundaki Değere Göre Altforma Kayıt Eklensin Yada Eklenmesin ŞabanTR 4 170 17-12-2023, 17:40
Son Mesaj: ŞabanTR
  [SORGU] Onay Kutusuna Göre Sorgu Listesi Oluşturma 88888888 6 378 31-07-2023, 16:40
Son Mesaj: 88888888
  Sorguda Okşulla Göre Veri Girilen Yere Elle Veri Girişi ŞabanTR 4 181 09-01-2023, 13:31
Son Mesaj: ŞabanTR
  [VBA] Indirim Uygulama omergenc7 6 276 03-11-2022, 11:04
Son Mesaj: omergenc7
  [FORM] GİRİLEN GÜN SAYISINA GÖRE TARİH EKLEME SOGUT01 8 1.555 10-10-2022, 10:11
Son Mesaj: Kaptan64

Foruma Git:


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