当我手动启动时,我有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元素。
有什么想法吗?
答案 0 :(得分:1)
当脚本作为计划任务运行时,它在不同的上下文/会话中运行,并且没有可以“查看”的GUI,也没有任何与现有会话交互的方式。
答案 1 :(得分:1)
当alroc回答时,它确实在另一个上下文/会话下运行。
我无法找到任何解决方法来传递这个...使用纯PowerShell ...但是我能够用wscript完成工作。
在您的PS脚本中,使用此
打开您的Chrome (new-object -com wscript.shell).run("http://localhost/",3)
它将全屏打开默认浏览器。我可以在任务调度程序中使用sendkeys!
答案 2 :(得分:0)
将脚本作为必须与桌面交互的计划任务运行 你必须创建一个文件夹(或64位窗口上的两个): (32位,总是)C:\ Windows \ System32 \ config \ systemprofile \ Desktop (64位)C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop