1

又是我迷惑先生。

我正在尝试在运行时从我计算机上的 .txt 文件中添加此代码(调用此代码)。

在编译之前,我可以将此代码添加到我的表单中,它可以通过手动将 webbrowser.navigate 和 addhandlers 放置在一个按钮下而运行良好,其余部分自行放置,但我想在我的应用程序编译后通过单击一个按钮添加此代码.

我对此的思考过程是像我一样在 .txt 中完成代码,然后在编译之前进入我的表单上的 btn1 并对其进行编码以说出我使用 openfiledialog 打开的任何 .txt 将代码拉入表单并使用它。

我知道手动将 webbrowser.navigate 和 addhandlers 手动放置在按钮下(并添加表单的处理程序和公共新实例)就可以解决问题,但必须有更好的方法来解决这个问题,因为我是将有大约 500 个 .txt 文件可供提取。

我正在考虑可能遍历一个文件夹并抓取文件夹中的每个 .txt 并通过执行某些操作将它们调用到表单中???但我在这一步迷路了。

关于如何解决这个问题的任何想法?

谢谢

这是来自 .txt 文件之一的代码。

'Connotea DECLARATION
Public Connotea as new captchawindow

Public Sub ConnoteaNavigate
Connotea.webbrowser1.navigate("http://www.connotea.org/register")
End Sub

Public Sub ConnoteaHandlers

AddHandler Connotea.button1.click, addressof Connoteabutton
AddHandler Connotea.webbrowser1.documentcompleted, addressof Connoteabrowsercompleted
End Sub

Public Sub Connoteabrowsercompleted

For Each element as HtmlElement in Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "firstname" then
element.setAttribute("value", ProfileMaker.FirstName.Text)
End If
Next

For Each element as HtmlElement in Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "lastname" then
element.setAttribute("value", ProfileMaker.LastName.Text)
End If
Next

For Each element as HtmlElement in Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "username" then
element.setAttribute("value", ProfileMaker.Username.Text)
End If
Next

For Each element as HtmlElement in Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "password" then
element.setAttribute("value", ProfileMaker.Password.Text)
End If
Next

For Each element as HtmlElement in Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "passwordconfirm" then
element.setAttribute("value", ProfileMaker.Password.Text)
End If
Next

For Each element as HtmlElement in Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "email" then
element.setAttribute("value", ProfileMaker.Email.Text)
End If
Next

For Each element as HtmlElement in Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "email2" then
element.setAttribute("value", ProfileMaker.Email.Text)
End If
Next

If Connotea.WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
For Each Captcha As HtmlElement In Connotea.WebBrowser1.Document.Images
If Captcha.GetAttribute("src").Contains("http://www.google.com/recaptcha/api/image?c=") Then
Connotea.PictureBox1.Load(Captcha.GetAttribute("src"))
End If
Next
End If


End Sub

Public Sub Connoteabutton

Connotea.show

For Each element as HtmlElement in     Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("id") = "recaptcha_response_field" then
element.setAttribute("value", Connotea.Textbox1.Text)
End If
Next

For Each element as HtmlElement in             Connotea.WebBrowser1.Document.Getelementsbytagname("input")
If element.getattribute("value") ="register" then
 element.InvokeMember("click")
End If
Next

Connotea.dispose
End Sub
4

1 回答 1

0

我认为您正在使用CodeDOM寻找解决方案

这个关于 SO的问题在 C# 中,但应该给你一些指示。

微软网站上的这篇文章提供了在 VB 中实现这一目标的分步指南

于 2012-07-16T08:36:08.900 回答