僕も初心者ですが、ABの基本は一応分かっているつもりです(たぶん)。
wakabaさんは、
・実行ファイルを起動
・出てきたダイアログのエディットボックスにパスワード入力
・RETURNキー
だと僕は解釈しました。
まずwakabaさんのコードの
コード:
hFocus = FindWindow(NULL, NULL)
の部分。
FindWindowのパラメーターに両方ともNULLを入れると、
どんなウインドウハンドルが返るのでしょう?
パスワード入力ダイアログが出るとすれば、こうじゃないですか?
コード:
hFocus = GetForegroundWindow()
で、最前面のウインドウのハンドルが入ります。
しかし、
コード:
SetFocus(hFocus)
とありますが、ウインドウの中のエディットボックスに入力するんですよね?
なら、
コード:
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (hWnd1 As HWND, hWnd2 As HWND, lpstr1 As LPSTR, lpstr2 As LPSTR) As HWND
SetFocus(FindWindowEx(hFocus,NULL,"EDIT",NULL))
としないと、エディットボックスがアクティブにならないんじゃないですか?
(試していませんが・・・)
それと、
コード:
if cnt <> 0 then
For t=0 to cnt-1
keybd_event(s_pass[t],0,0,0)
Sleep(200)
Next
keybd_event(13,0,0,0)'password input 自動リターン
End If
ですが、konisi様の言うとおり、キーは押して、離さないといけません。
なので・・・
コード:
if cnt <> 0 then
For t=0 to cnt-1
keybd_event(s_pass[t],0,0,0)
keybd_event(s_pass[t],0,KEYEVENTF_KEYUP,0)
Sleep(200)
Next
keybd_event(VK_RETURN,0,0,0)'password input 自動リターン
keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0)
End If
ですよね。あと、大文字にも対応すると・・・
と言いたいところですが無理です。時間が無いので。すいません。