Log in

View Full Version : [SLEEPER:] *** mask password in inputbox



Kvracing
11-14-2014, 04:01 PM
Hello!

I am trying to get this code to work.
It's for making **** in the field of an inputbox, so the password cant be seen.

I's originally a code for a 32 bit system, so the real challenge here is converting it to 64 bit.



The code are:




Public sPwd As String
Public gMsgTitle As String
Public gMsgType As String
Public gMsgText As String
Public gStatusText As String
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias _
"FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, _
ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr
Public Declare PtrSafe Function SetTimer& Lib "user32" _
(ByVal hwnd&, ByVal nIDEvent&, ByVal uElapse&, ByVal _
lpTimerFunc&)
Public Declare PtrSafe Function KillTimer& Lib "user32" _
(ByVal hwnd&, ByVal nIDEvent&)
Private Declare PtrSafe Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As LongPtr, _
ByVal wParam As LongPtr, lParam As Any) As LongPtr
Const EM_SETPASSWORDCHAR = &HCC
Public Const NV_INPUTBOX As Long = &H5000&

And Function:


Public Function TimerProc(ByVal lHwnd&, ByVal uMsg&, ByVal lIDEvent&, ByVal lDWTime&) As LongPtr
Dim lTemp As Long
Dim lEditHwnd As Long
lTemp = FindWindowEx(FindWindow("#32770", "gMsgText"), 0, "Edit", "")
lEditHwnd = FindWindowEx(FindWindow("#32770", "gMsgTitle"), 0, "Edit", "")
Call SendMessage(lEditHwnd, EM_SETPASSWORDCHAR, Asc("*"), 0)
KillTimer lHwnd, lIDEvent
End Function

Input box:


Private Sub OpnAdm_Click()
gMsgTitle = "Begrenset Omrde"
gMsgType = vbOKOnly + vbInformation
gMsgText = "Tast inn passord"
lTemp = SetTimer(Me.hwnd, NV_INPUTBOX, 1, AddressOf TimerProc)
sPwd = InputBox(gMsgText, gMsgTitle)
If strPasswd = "" Or strPasswd = Empty Then
Exit Sub
End If
If strPasswd = "yslg53481" Then
DoCmd.OpenForm "frmBatchReg"
Else
MsgBox "Beklager, du har ikke tilgang til denne delen av programmet", vbOKOnly, "Sikkerhetssjekk"
Exit Sub
End If
End Sub

Missing anything? The error I get is type miss match on AddressOf TimerProc. But I know its also needs converting to 64 bit. Don't know how tough.



I know its 1000 times easier to just make an new form and pwd mask the input mask, but this is not the case here. I rather have more code and less forms, and it get's on my nerves that I cant find it out, so just need see this through, especially when so many other 32 bit users got it to work;)


Anyone know what to do here? :)

Kvracing
11-14-2014, 05:11 PM
Posted this on other forums; Just for information (got some angry moderators breathing down my neck;):
I have posted this issue on several forums, simply because I don't think it's an easy fix, and most likley It's just a few people who can solve this. Where they are is hard to know, so I have multiplyed the chances of finding them by going wide on the internett ;) Do not worry on dobbeltsolving this problem, the minuite we find a solution its out on every forum. I don not want others to use as much time on this as I have. In fact I hope to mabe make a youtube video :) But first the problem needs solving ;) So thx anyway for reading, I am quite on my deapth here now, so ain't getting further here without anyone with a little more experience :)

Regards
-Kv

jonh
11-15-2014, 04:09 AM
Why not create your own form? Use keydown to trap each character in a variable but show asterisks in a label.

macropod
11-15-2014, 11:19 PM
Cross-posted at:
http://www.techsupportforum.com/forums/f57/mask-password-in-inputbox-919138.html
and at:
http://www.tek-tips.com/viewthread.cfm?qid=1740676
and at:
http://www.excelforum.com/excel-programming-vba-macros/1049901-mask-password-in-inputbox.html
and at:
http://windowssecrets.com/forums/showthread.php/165348?p=974480#post974480

For cross-posting etiquette, see: http://www.excelguru.ca/content.php?184

GTO
11-16-2014, 02:58 AM
... Utter apologies, posted thinking I was in the Excel forum. Not sure about 'forms' in Access.

jonh
11-17-2014, 08:19 AM
I must have missed the last part of the post.
anyway a quick search turned this up which seems to work ok.

http://stackoverflow.com/questions/20909417/vba-password-input-with-cancel-function

Kvracing
11-18-2014, 07:39 AM
I must have missed the last part of the post.
anyway a quick search turned this up which seems to work ok.



Yes I know, that's the code I have based my code on, the challenge is as I pointed out in the bottom, that I have a 64 bit system.

jonh
11-18-2014, 04:10 PM
Oh. Ok. Your code looks nothing like that code. My mistake.

Kvracing
11-21-2014, 06:24 AM
Ty for answers, but this took to much time. So I converted to 32 bit. Solved the whole problem :)