msgbox("{welcome to in IRCTC}")
On Error Resume Next
Const PAGE_LOADED = 4
objShell = CreateObject("Shell.Application")
objShell.Execute"C:\Users\ASFRAF\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Google Chrome.exe"
Call objShell.Navigate("https://www.irctc.co.in/cgi-bin/bv60.dll/irctc/services/login.do?userName=namanja&password=vishal123&submit=Login")
msgbox("go to login in irctc")
objShell.Visible = True
Do Until objIE.ReadyState = PAGE_LOADED : Call WScript.Sleep(100) : Loop
msgbox("success login in irctc")
答案 0 :(得分:0)
首先,全局On Error Resume Next
正在屏蔽您获得的任何错误。 从不使用On Error Resume Next
,除非您知道完全您正在做什么并且有合理的错误处理代码。
话虽如此,从objIE
循环中的Do
变量判断,您似乎尝试修改Internet Explorer自动化的脚本,因此它使用Chrome而不是IE。这不起作用,因为Chrome不会公开可以通过VBScript控制的COM对象。
代码中的其他错误,这些错误被全局On Error Resume Next
隐藏:
您尝试在不使用Set
关键字(objShell = CreateObject("Shell.Application")
)的情况下将对象实例分配给变量。
Shell
个对象没有Execute
方法。如果要通过Shell
对象运行外部程序,则需要使用ShellExecute
方法。但是,该方法在后台异步启动进程,并且不返回句柄。
Shell
个对象也没有Navigate
方法。该方法由InternetExplorer
COM对象提供。
这样的事情应该有效:
MsgBox "{welcome to in IRCTC}"
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate "https://www.irctc.co.in/cgi-bin/..."
MsgBox "go to login in irctc"
ie.Visible = True
Do Until ie.ReadyState = 4 : WScript.Sleep 100 : Loop
MsgBox "success login in irctc"
但我想这就是你已经拥有的东西。