我今天在帮朋友写一个游戏自动登入的时候遇到这样问题!
这是我的代码~
首先我用了sendmessage WM_SETTEXT直接向文本框写内容虽然些进去了可是不行
在写入之前我已经取消文本框的属性了!
后来我用下面这个方法!
login_hwnd = FindWindow("TChkAccountForm", "登录 - PC爱好者")
login_pass = FindWindowEx(login_hwnd, 0, "TEdit", vbNullString)
login_name = GetWindow(login_pass, GW_HWNDNEXT)
Sleep (500)
LoopNo = Len(Text6.Text)
No = 1
If LoopNo <> 0 Then '''输入帐号
SetWindowPos login_hwnd, -1, 0, 0, 0, 0, 3
Do
SendMessage login_name, WM_LBUTTONDOWN, 0, 0'给帐号框一个焦点
Namex(No) = Left$(Text6.Text, No)
Namex(No) = Right$(Namex(No), 1)
ascNo = Asc(Namex(No))
ascNo = ascNo - 32
Sleep (300)
keybd_event ascNo, 0, 0, 0
'keybd_event ascNo, KEYEVENTF_KEYUP, 0, 0
'Form3.List1.AddItem ascNo
No = No + 1
LoopNo = LoopNo - 1
Loop Until LoopNo = 0
Else
MsgBox "请输入帐号", vbOKOnly, "提示"
'Text6.Text = pass_hl
End If
问题来了:只输入3个字符就不输了.
这是怎么回事呀!
这是我的代码~
首先我用了sendmessage WM_SETTEXT直接向文本框写内容虽然些进去了可是不行
在写入之前我已经取消文本框的属性了!
后来我用下面这个方法!
login_hwnd = FindWindow("TChkAccountForm", "登录 - PC爱好者")
login_pass = FindWindowEx(login_hwnd, 0, "TEdit", vbNullString)
login_name = GetWindow(login_pass, GW_HWNDNEXT)
Sleep (500)
LoopNo = Len(Text6.Text)
No = 1
If LoopNo <> 0 Then '''输入帐号
SetWindowPos login_hwnd, -1, 0, 0, 0, 0, 3
Do
SendMessage login_name, WM_LBUTTONDOWN, 0, 0'给帐号框一个焦点
Namex(No) = Left$(Text6.Text, No)
Namex(No) = Right$(Namex(No), 1)
ascNo = Asc(Namex(No))
ascNo = ascNo - 32
Sleep (300)
keybd_event ascNo, 0, 0, 0
'keybd_event ascNo, KEYEVENTF_KEYUP, 0, 0
'Form3.List1.AddItem ascNo
No = No + 1
LoopNo = LoopNo - 1
Loop Until LoopNo = 0
Else
MsgBox "请输入帐号", vbOKOnly, "提示"
'Text6.Text = pass_hl
End If
问题来了:只输入3个字符就不输了.
这是怎么回事呀!
问题好象出现在这里。
你可以试做下