通过批处理文件在Windows 7/Chrome上自动登录网站

9
我有一个批处理文件,其中包含一个case选择语句。如果用户输入26,它将在chrome浏览器中打开链接1;如果用户输入27,则在chrome浏览器中打开链接2。
但我仍然想知道如何让批处理自动登录到网站并输入用户名和密码。我在谷歌上搜索过这样的脚本,但什么有用的都没有找到。我会一些C ++、unix(还懂一些html和javascript),但我不知道是否可以使用这些语言在Windows机器上完成此操作,即使可以,与VB或C#或其他高级语言相比,也会更加困难。
我学会了如何使用批处理命令打开多个网站并将其封装在bat文件中,如下所示:
start chrome.exe http://yahoo.com
start chrome.exe http://www.google.tv

但我仍然无法想象一个.bat文件上的点击如何帮助我登录到网站,而且甚至不需要输入用户名和密码。

我需要开始学习VB(Visual Basic)、.Net或Windows批处理编程来完成这个任务吗?这难度很大吗..请帮忙。


1
在用户首次登录时,请让您的登录页面在cookie中设置一个令牌。然后,让您的登录脚本查找该令牌并进行相应的身份验证。 - Bryan Allo
1
除非您想要使用Windows用户凭据进行身份验证,比如通过LDAP集成,否则我建议您只需在cookie中使用一个长时间存活的令牌。那时无论您使用哪个浏览器或批处理文件调用都不会有问题。您的登录脚本可以处理该令牌。这样您也可以根据需要撤销安全令牌,并且安全/访问更加集中和可管理。 - Bryan Allo
我建议的方法假设您可以访问登录脚本/函数。这是正确的吗? - Bryan Allo
不,我只是为用户(妈妈和爸爸)编写了批处理代码,让他们输入(频道号码),然后它会在Web浏览器中打开电视流链接,如果不需要登录(如果已经登录),则会通过我编写的autohotkey脚本自动全屏播放流。 - Mowgli
@Mowgli 你不能这样做。关于cookies的建议是基于你是正在登录的网站的作者的假设。 - Stuporman
显示剩余5条评论
2个回答

14

你可以尝试以下代码:

set WshShell = WScript.CreateObject("WScript.Shell")
call WshShell.Run("http://www.gmail.com", 1, false) 'This will open your default browser

WScript.Sleep 2000
WshShell.SendKeys "username"
WScript.Sleep 1000
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "password"
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WScript.Quit()
该代码打开您的浏览器,等待页面加载,然后假定光标位于正确的输入框中(例如,在 Gmail 中,它将位于 用户名 输入框中),然后输入用户名和密码。否则,您需要使用 TAB 导航到正确的输入框。如果您不想在脚本文件中编写密码,请在浏览器上保存密码并使用适当的 SendKeys 方法进行登录。

-2

我在我的网站上尝试了上述脚本,但只能看到登录页面,无法输入用户名和密码,需要帮助。

@if (@CodeSection == @Batch) @then


@echo off

set SendKeys=CScript //nologo //C:JScript "%~F0"
START iexplore.exe "www.gmail.com"
timeout /t 5
%SendKey% "USERNAME{TAB}"
%SendKey% "PASSWORD{Continue}"

goto :EOF


@end
// JScript section

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接