tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB2005でhtmlのTEXTAREAエリアへの自動書込みについて
記事No6570
投稿日: 2007/11/21(Wed) 11:55
投稿者たかやん
サンプル集などとても有効活用させて頂いておりとても助かっております。

今現在どうしても解らない事があり是非ご教授して頂きたいと思い投稿しました。

VB2005にてWebBrowserを使い
WebBrowser内に表示されたhtml内にあるinputboxにデータをVBから指定したデータを入れる事は出来るのですが、TEXTAREAに対してはどうやっても指定のデータを入れる事が出来ないのです・・

Dim AData as string="Testタイトル"
Dim BData as string="投稿記事"

With WebBrowser1
.Navigate("URL")
Do While .ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
Loop
.Document.GetElementById("post_title").SetAttribute("Value", AData)
.Document.GetElementById("content").SetAttribute("Value", "BData")
End With

ブログに指定した記事を自動的にアップロードさせたいのですが
post_titleはhtmlを見るとinputboxになっています。
問題のcontentはTEXTAREAになっており、エラーは出ないものの、何も値が入らない状態です。

以上ご教授の程宜しくお願いいたします。

[ツリー表示へ]
タイトルRe: VB2005でhtmlのTEXTAREAエリアへの自動書込みについて
記事No6572
投稿日: 2007/11/22(Thu) 09:51
投稿者魔界の仮面弁士
> Application.DoEvents()
DoEvents ループによる待機は、できれば避けてください。
もし、ReadyState 監視を行いたいのであれば、Timer コンポーネントを併用し、
たとえば「0.1 秒おきにチェックする」などのコードの方が、負荷が少ないです。


> .Document.GetElementById("post_title").SetAttribute("Value", AData)
> .Document.GetElementById("content").SetAttribute("Value", "BData")
前者は、「変数」AData を渡しているのに、
後者は、「固定値」"BData" を渡していますが、意図的なものですか?



> 何も値が入らない状態です。
このページの URL で試してみましたが、入りましたよ(下記参照)。
どうしても駄目なら、InnerText プロパティによる代入に変えてみてはいかがでしょう。



Public Class Form1
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        WebBrowser1.Navigate("http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?no=6570&reno=no&oya=6570&mode=msgview&page=0")
    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        WebBrowser1.Document.GetElementById("name").SetAttribute("Value", "AData")
        WebBrowser1.Document.GetElementById("message").SetAttribute("Value", "BData")
    End Sub
End Class

[ツリー表示へ]
タイトルRe^2: VB2005でhtmlのTEXTAREAエリアへの自動書込みについて
記事No6575
投稿日: 2007/11/22(Thu) 21:39
投稿者たかやん
魔界の仮面弁士様
早速のご返答並びにご教授ありがとうございます。

>前者は、「変数」AData を渡しているのに、
>後者は、「固定値」"BData" を渡していますが、意図的なものですか?

はい、これは意図的に別のデータを入れようとしているのですが、確かにご教授して頂いた内容で間違いなくデータは入ったのですが、目的のサイトではTAB移動でもボックス(textarea)を選択出来ない状態なのです。

目的はワードプレスと言うオープンソースタイプのブログに一定時間毎にPCにある記事を自動的にアップさせたいのですが、HTML表示とテキスト表示のタブが邪魔をするのか、textereaの指示部分ではエラーが出てないのですが、値のみ入らない状態なのです。

他にTAB処理
Tab1C = 3
My.Computer.Keyboard.SendKeys("{TAB " & Tab1C & "}", True)

などでTAB移動も心みたのですが、なぜかそのテキストエリアだけは飛んで違うエリアを選択してしまうのですよね・・・

>DoEvents ループによる待機は、できれば避けてください。

これは早速変更させたいと思います。ありがとうございます!

ワードプレスの管理画面のPHPソースを改造しようとしたのですが、管理画面の変更は出来ないようで、もう少し粘ってじっくりと戦ってみます。

お客様からの強い要望だったので、少しでも早く解決出来るように頑張りたいと思います。

[ツリー表示へ]
タイトルRe^3: VB2005でhtmlのTEXTAREAエリアへの自動書込みについて
記事No6576
投稿日: 2007/11/22(Thu) 22:47
投稿者魔界の仮面弁士
> 目的のサイトではTAB移動でもボックス(textarea)を選択出来ない状態なのです。
それはつまり、具体的にはどういう状態になっているのですか?

onfocus に対するスクリプトが埋めてあるのでしょうか。
それとも、disabled 状態になっているのでしょうか。それとも、実は textarea は
スクリプト制御用に置いてあるだけで、見えている部分はただの DIV タグ、とか?


> 値のみ入らない状態なのです。
と言われましても、その HTML 構造などがわからない以上、
こちらとしては、具体的なアドバイスができません。m(_ _)m

[ツリー表示へ]