1

当我手动启动它们时,我有 2 个脚本在工作。

将鼠标光标移出屏幕:

[system.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | out-null
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(1999,100)

如果打开带有标题 HUD 的 chrome 浏览器,请将其置于信息亭模式:

[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")             
[Microsoft.VisualBasic.Interaction]::AppActivate("Hud - Google Chrome")
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")     
[System.Windows.Forms.SendKeys]::SendWait("{F11}")

如果我将它们放在 Windows 7 上的计划任务中,它们将不起作用。

如果我启动一个调用脚本文件的批处理文件,它们就会起作用

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -command "&C:\Users\Miniuser\Documents\chromeHUD.ps1"

但如果我在计划任务中启动批处理文件,则不会。

似乎在计划任务中我无法访问我的 UI 元素。

有任何想法吗?

4

3 回答 3

1

正如 alroc 回答的那样,它确实在另一个上下文/会话下运行。

我找不到任何解决方法来通过这个...使用纯powershell ...但是我能够使用wscript完成工作。

在你的 PS 脚本中,用这个打开你的 chrome

    (new-object -com wscript.shell).run("http://localhost/",3)

它将全屏打开默认浏览器。我可以在任务调度程序中将它与 sendkeys 一起使用!

于 2013-07-11T09:46:01.283 回答
1

当脚本作为计划任务运行时,它在不同的上下文/会话中运行,并且没有它可以“看到”的 GUI,也没有任何与现有会话交互的方式。

于 2012-12-09T13:40:21.667 回答
0

要将脚本作为必须与桌面交互的计划任务运行您必须创建一个文件夹(或在 64 位 Windows 上创建两个):(32 位,始终)C:\Windows\System32\config\systemprofile\Desktop(64 位) C:\Windows\SysWOW64\config\systemprofile\Desktop

于 2016-10-07T20:35:02.040 回答