使用 shell 和 sendkeys 将 VBS 调度到 运行 无论用户是否登录
Scheduling VBS, with shell and sendkeys, to run whether user is logged on or not
几天来我一直在研究这个问题。我有一个需要 运行 的脚本,它将 运行 一个 CLI 程序,并通过 sendkeys 输入登录信息。如果选择 "Run only when the user is logged on".
,这将 运行 正常
但是,一旦我select到"Run whether user is logged on or not",计划任务显示它运行,但它并没有这样做。我还能如何解决这个问题?
Sendkeys 被编程为与活动用户界面交互。因此,如果您的计算机被锁定,它不会执行任何操作,因为界面被锁定。
根据 CLI,它可能具有在初始化时登录的参数。
给定 test.bat 文件:
CD C:\Program Files\example\exampleclidirectory
set user=username
set pswd=password
cmdline.exe -user %user% -password %pswd%
如果参数不是一个选项,请尝试使用 SendMessage/PostMessage 和 FindWindow 而不是 Sendkeys。这应该在 C# 或 VB 中可用。但我建议使用 C#。
这里有一些资源:
http://www.codingvision.net/miscellaneous/c-send-text-to-notepad
I can't understand how to use SendMessage or PostMessage calls
这应该为您提供了一些输入启动程序所需数据的方法。
几天来我一直在研究这个问题。我有一个需要 运行 的脚本,它将 运行 一个 CLI 程序,并通过 sendkeys 输入登录信息。如果选择 "Run only when the user is logged on".
,这将 运行 正常但是,一旦我select到"Run whether user is logged on or not",计划任务显示它运行,但它并没有这样做。我还能如何解决这个问题?
Sendkeys 被编程为与活动用户界面交互。因此,如果您的计算机被锁定,它不会执行任何操作,因为界面被锁定。
根据 CLI,它可能具有在初始化时登录的参数。
给定 test.bat 文件:
CD C:\Program Files\example\exampleclidirectory
set user=username
set pswd=password
cmdline.exe -user %user% -password %pswd%
如果参数不是一个选项,请尝试使用 SendMessage/PostMessage 和 FindWindow 而不是 Sendkeys。这应该在 C# 或 VB 中可用。但我建议使用 C#。
这里有一些资源:
http://www.codingvision.net/miscellaneous/c-send-text-to-notepad
I can't understand how to use SendMessage or PostMessage calls
这应该为您提供了一些输入启动程序所需数据的方法。