VB InputBox 对话框星号保护隐私

本文介绍了一个使用VBA实现的定时显示输入框的例子。通过调用Windows API函数如SetTimer、FindWindow等,实现了定时弹出输入框并自动将输入的内容设置为星号的功能。文章展示了如何创建及销毁定时器,以及如何定位特定窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Option Explicit

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Private Const
EM_SETPASSWORDCHAR = &HCC

'hwnd 标识与定时器相关的窗口
'nIDEvent 指定一个非零定时器事件标识符
'uElapse 指定定时器事件之间的时间间隔
'lpTimerFunc 表示定时器事件发生后接收详细的函数的过程实例地址
Public Declare Function SetTimer Lib "user32" _
(
ByVal hwnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) _
As Long

Private Declare Function
KillTimer Lib "user32" _
(
ByVal hwnd As Long, _
ByVal nIDEvent As Long) _
As Long

Private Declare Function
FindWindow Lib "user32" Alias "FindWindowA" _
(
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long

Private Declare Function
FindWindowEx Lib "user32" Alias "FindWindowExA" _
(
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) _
As Long

Dim
m_lngTimerId As Long

Private Sub
Main()
'建立API时间,句柄参数这里没有窗体赋值为0,但需要保存计时器标识符供KillTimer使用
m_lngTimerId = SetTimer(0, 0, 1, AddressOf TimerProc)

'Prompt作为对话框消息出现的字符串表达式。
'Title显示对话框标题栏中的字符串表达式。如果省略 title,则把应用程序名放入标题栏中。
'Default显示文本框中的字符串表达式,在没有其它输入时作为缺省值。如果省略 default,则文本框为空。
Call InputBox("请输入姓名", "输入框")
End Sub

Public Sub
TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Dim lngHwnd As Long

lngHwnd = FindWindow(vbNullString, "输入框") '参数复制是Input的Title参数
lngHwnd = FindWindowEx(lngHwnd, 0, "Edit", vbNullString) '继续查找子窗口,使用TextBox类名"Edit"

If lngHwnd Then
Call
PostMessage(lngHwnd, EM_SETPASSWORDCHAR, &H2A, 0) '&H2A是什么?就是*的AscII码42,这个参数为""就是不显示密码了。
Call KillTimer(0, m_lngTimerId) '关闭计时器
End If
End Sub

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值