# 请教cww或其他高手一个程式问题!

Posted by Mouse on June 18, 1999 at 12:15:22:

我想做一个像SnadBoy's Revelation的软体
他的作用是可以显示密码输入框的密码(将*的内容显示出来)
Ex.拨号网路的密码输入
我利用GetCursorPos()取得滑鼠的位置
再用WindowFromPoint()取得滑鼠所在文字输入框的hWnd
我本来的想法是利用SendMessage()
送讯息给滑鼠位置所在的文字方框取的里面的内容
但是在执行的同一个视窗可以取得密码框的内容
但是在别的视窗上(拨号网路密码输入框,或其他视窗的文字输入框)
却会程式错误然后结束(游标移到输入框上立刻发生 user32发生错误)
不知有没有什么比较好的方法可以做到我想要的功能

程式:
Dim hCursorWnd As Long, point As POINTAPI
Static hw As Long
Dim st As String
hw = 0
GetCursorPos point
hCursorWnd = WindowFromPoint(point.X, point.Y)
If hw <> hCursorWnd Then
st = String(255, 0)
RtlMoveMemory ByVal st, 255, 2
GetClassName hCursorWnd, st, 80
st = Left(st, InStr(st, Chr(0)) - 1)
Select Case UCase(st)
Case "EDIT", "THUNDERTEXTBOX", "THUNDERRT5TEXTBOX"
st = String(80, Chr(0))
RtlMoveMemory ByVal 80, &H50, 2
SendMessage hCursorWnd, EM_GETLINE, 0, ByVal st
End Select
st = Left(st, InStr(st, Chr(0)) - 1)
lbl.Caption = st
hw = hCursorWnd
End If

不知道程式应该改成怎样才能达成我要的功能?

Follow Ups: