我尝试自动填写windows安全窗口的名称和密码,基本上在窗口打开几秒钟后页面就会打开,但user和password字段为空。这是我到目前为止所拥有的代码,任何帮助都将不胜感激。谢谢。
这就是我现在的位置:
作为新进程的Dim oProcess ()作为新ProcessStartInfo的Dim psi
psi.FileName = "arp"
psi.Arguments = "-a"
psi.UseShellExecute = False
psi.RedirectStandardOutput = True
psi.WindowStyle = ProcessWindowStyle.Hidden
psi.CreateNoWindow = True
Dim p As Process = Process.Start(psi)
Dim s As String = p.StandardOutput.ReadToEnd()
s = s.Split(" ".ToCharArray)(1)
WebBrowser1.Navigate("http://user:pass@" + (s) + ":34655/")它可以工作,但我只从cmd获得第一个ip(192.2.2.2),如果我不使用arp命令,我看不到设备的ip。基本上,我需要从第三行的cmd输出中获取ip:"interface: 192.2.2.2 -0xb/ internet address- type/ 134.45.455.455.4(this ip) mac address dynamic/ etc“/谢谢
发布于 2017-11-20 11:17:40
你需要更具体一些。
如果您要连接的此站点使用基本身份验证,您将看到一个带有标准字段和按钮控件的系统InputBox。如果它使用WebForm LogIn身份验证,您将看到一个带有要填写的半标准表单元素的表单。
在前一种情况下,通过WebRequest/HttpWebResponse执行身份验证非常简单,或者,如果您确实需要使用WebBrowser控件,则可以设置其.Navigate属性来实现相同的结果。
如果是后者,因为使用WebBrowser控件导航到URI,所以实际上根本不需要任何PInvoke。
请注意,WebBrowser.Document包含描述HTML页面的HtmlDocument。
它还允许您访问页面定义的所有对象。
因此,如果你事先知道你正在连接哪个站点(即,你只需要对这个站点执行这个操作),你可以使用你的WebBrowser的.DocumentCompleted事件并直接从那里设置你的参数:
考虑一下:["UserName"], ["Password"], ["LoginButton"]
作为表示<input>文本框、<input>密码和在<input>事件中转发表单参数的.Click按钮的Html元素的ID。因此,从Html页面读取表单中元素的ID,然后插入您的值:
在WebBrowser1_DocumentCompleted中:
WebBrowser1.Document.All(["UserName"]).SetAttribute("Value", "UserID")
WebBrowser1.Document.GetElementById(["Password"]).SetAttribute("Value", "Password")
WebBrowser1.Document.All(["LoginButton"]).InvokeMember("Click")我使用.Document.All和.Document.GetElementById来说明有两种不同的方法来完成相同的任务。
如果事先不知道Html Page的内容是什么,则需要对页面执行简单的解析(使用HtmlDocument对象),检索表单的元素,然后重复前面的任务。
正如我所说的,您需要更具体。
如果你有问题,请发表意见,我将编辑我的答案。
https://stackoverflow.com/questions/47381547
复制相似问题