HPでの自動入力
Re: javaでHTTPUNITでも使えば一発ですよ
> http://httpunit.sourceforge.net/doc/cookbook.html
yasさん、有難う御座います。
ただ・・・英語なのとjavaは全然わからないので、内容がさっぱり理解出来ません。
(ABでは実現は困難なのでしょうか?)
yasさん、有難う御座います。
ただ・・・英語なのとjavaは全然わからないので、内容がさっぱり理解出来ません。
(ABでは実現は困難なのでしょうか?)
話はそれますが、IE限定っていうのとWebブラウザ限定っていうのとでは違うので区別した方がいいと思います。
IE・・・IE4 IE5 IE6等のInternetExplorerシリーズ
Webブラウザ・・・IE、FireFox、Nescape、Sleipnir等の全てのWebページを表示できるブラウザ
この定義で行っても「IE限定」かどうか調べてみてくだされ。暇なら。
そして文自体にミスがあったら言ってください。
IE・・・IE4 IE5 IE6等のInternetExplorerシリーズ
Webブラウザ・・・IE、FireFox、Nescape、Sleipnir等の全てのWebページを表示できるブラウザ
この定義で行っても「IE限定」かどうか調べてみてくだされ。暇なら。
そして文自体にミスがあったら言ってください。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
こんばんわ。
キーボード入力をエミュレートする
keybd_event
というAPIがあります。
上記コードをABにそのまま貼り付けして実行するとクリップボードに画面がコピーされます。
(PrintScreenボタンを押す動作をエミュレートした)
これを加工して、
アルファベットキーを押す、放すを繰り返してスペースで変換、エンターで決定、
タブで次の項目に移動を繰り返したり、
クリップボードに必要な文字列をコピーしてCtrl+V、タブで移動する等で
必要な項目を入力していくことが可能です。
こんな方法はどうでしょうか。(というかこういうソフトが実在するんですが)
キーボード入力をエミュレートする
keybd_event
というAPIがあります。
コード: 全て選択
Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long,ByVal wMapType As Long) As Long
keybd_event(VK_SNAPSHOT,MapVirtualKey(VK_SNAPSHOT,0),0,0)
keybd_event(VK_SNAPSHOT,MapVirtualKey(VK_SNAPSHOT,0),KEYEVENTF_KEYUP,0)
end
(PrintScreenボタンを押す動作をエミュレートした)
これを加工して、
アルファベットキーを押す、放すを繰り返してスペースで変換、エンターで決定、
タブで次の項目に移動を繰り返したり、
クリップボードに必要な文字列をコピーしてCtrl+V、タブで移動する等で
必要な項目を入力していくことが可能です。
こんな方法はどうでしょうか。(というかこういうソフトが実在するんですが)
> IE限定であれば行けるんでしょうか?
ただしくは、IEコンポーネントを使用したブラウザです。
IEは、ページの表示部分がCOMサーバですので、IE限定となる訳です。
そして、ページの内容をプロパティなどとして操作できる様になっています。
(Donutなどでも出来るかも)
操作は、ABでも行けるはずですが、かなり面倒です。
なので、ツール作成に必要な機能をVBAや、VBなどのRAD開発環境を使用して、
プロトタイプを作成した方がいいと思います。
Excel VBAでのサンプルを載せますので、あとは、ご自身で調査願います。
私も大して詳しくありません。確か専用のhtmlヘルプがありました。(英語)
IEを起動して、以下のサンプルをVBAに貼り付けて実行してください。
ただしくは、IEコンポーネントを使用したブラウザです。
IEは、ページの表示部分がCOMサーバですので、IE限定となる訳です。
そして、ページの内容をプロパティなどとして操作できる様になっています。
(Donutなどでも出来るかも)
操作は、ABでも行けるはずですが、かなり面倒です。
なので、ツール作成に必要な機能をVBAや、VBなどのRAD開発環境を使用して、
プロトタイプを作成した方がいいと思います。
Excel VBAでのサンプルを載せますので、あとは、ご自身で調査願います。
私も大して詳しくありません。確か専用のhtmlヘルプがありました。(英語)
IEを起動して、以下のサンプルをVBAに貼り付けて実行してください。
コード: 全て選択
Sub BBS()
' Dim oDoc As HTMLDocument 'Library MSHTMLを参照設定 - (Microsoft HTML Object Library)
Dim oShellwnd As ShellWindows 'Library SHDocVwを参照設定 - (Microsoft Internet Controls)
Set oShellwnd = New ShellWindows
If oShellwnd.Count = 0 Then
MsgBox "IEを起動してください!!", vbExclamation + vbOKOnly
GoTo ExitTag
End If
Call oShellwnd.Item(0).Navigate("http://www.discoversoft.net/bbs/bbs.cgi")
While oShellwnd.Item(0).Busy = True
DoEvents
Wend
oShellwnd.Item(0).document.all.Name.Value = "弘"
oShellwnd.Item(0).document.all.email.Value = "mail@address.co.jp"
oShellwnd.Item(0).document.all.sub.Value = "HPでの自動入力"
oShellwnd.Item(0).document.all.Comment.Value = "自動入力の質問"
' 又は…。
' Set oDoc = oShellwnd.Item(0).document
' oDoc.Item(0).document.all.Name.Value = "弘"
' oDoc.Item(0).document.all.email.Value = "mail@address.co.jp"
' oDoc.Item(0).document.all.sub.Value = "HPでの自動入力"
' oDoc.Item(0).document.all.Comment.Value = "自動入力の質問"
ExitTag:
' Set oDoc = Nothing
Set oShellwnd = Nothing
End Sub
コード: 全て選択
Sub Google()
Dim oTag As Object
Dim oShellwnd As ShellWindows 'Library SHDocVwを参照設定 - (Microsoft Internet Controls)
Set oShellwnd = New ShellWindows
If oShellwnd.Count = 0 Then
MsgBox "IEを起動してください!!", vbExclamation + vbOKOnly
GoTo ExitTag
End If
Call oShellwnd.Item(0).Navigate("http://www.google.co.jp/")
While oShellwnd.Item(0).Busy = True
DoEvents
Wend
For Each oTag In oShellwnd.Item(0).document.all.tags("input")
If oTag.Type = "text" Then
oTag.Value = "HPでの自動入力"
End If
Next oTag
ExitTag:
Set oShellwnd = Nothing
End Sub
もう一つ訂正。
です。
コード: 全て選択
' 又は…。
' Set oDoc = oShellwnd.Item(0).document
' oDoc.all.Name.Value = "弘"
' oDoc.all.email.Value = "mail@address.co.jp"
' oDoc.all.sub.Value = "HPでの自動入力"
' oDoc.all.Comment.Value = "自動入力の質問"
> Excel VBAのサンプルの実行の仕方をもう少し詳しく教えて頂けないでしょうか?
> Excel VBAに貼り付けて実行すると”ユーザ定義型は定義されていません”と表示されコンパイルエラーになってしまいます。
ソースのコメントに書かれてあるのですが、参照設定が必要です。
BBSのソースでは以下の様に記述されてあるのでVisualBasicEditorのメニューバーの tool - 参照設定 を選択して
「Microsoft Internet Controls」をチェックします。
(実行、デバッグ時には停止させないと設定できません)
> Excel VBAに貼り付けて実行すると”ユーザ定義型は定義されていません”と表示されコンパイルエラーになってしまいます。
ソースのコメントに書かれてあるのですが、参照設定が必要です。
BBSのソースでは以下の様に記述されてあるのでVisualBasicEditorのメニューバーの tool - 参照設定 を選択して
「Microsoft Internet Controls」をチェックします。
(実行、デバッグ時には停止させないと設定できません)
Dim oShellwnd As ShellWindows 'Library SHDocVwを参照設定 - (Microsoft Internet Controls)
Excelや、VBがない人は、VBSでも実行できます。
このサンプルでは、新たな属性も変更します。
実行手順:
1.Google.vbs ファイルを新規作成して、以下のコードを貼り付け保存。
2.IEを起動して、http://www.google.co.jp/ を開く。
3.Google.vbs をダブルクリック
サンプルのように入力するターゲットが決まっている場合は、いいですが、
ページごとに異なるフォームの場合は、ソースの解析も必要です。
自動入力以上に苦労するかもしれません。
私が、例の懸賞ソフトを試したのが数年前ですが、当時100%の自動入力は、
出来ませんでした。
このサンプルでは、新たな属性も変更します。
実行手順:
1.Google.vbs ファイルを新規作成して、以下のコードを貼り付け保存。
2.IEを起動して、http://www.google.co.jp/ を開く。
3.Google.vbs をダブルクリック
コード: 全て選択
Set oshell = CreateObject("Shell.Application")
For Each ownd In oshell.Windows()
MsgBox ownd.document.body.innerHTML
ownd.document.body.text = "#FFFFFF"
ownd.document.body.bgcolor = "#000000"
For Each oTag In ownd.document.all.tags("input")
If oTag.Type = "text" And oTag.Name = "q" Then
oTag.Value = "HPでの自動入力"
End If
Next
Next
ページごとに異なるフォームの場合は、ソースの解析も必要です。
自動入力以上に苦労するかもしれません。
私が、例の懸賞ソフトを試したのが数年前ですが、当時100%の自動入力は、
出来ませんでした。