簡體   English   中英

預定的Powershell任務無法與瀏覽器交互

[英]Scheduled Powershell task can't interact with browser

修改后的描述:

使用下面的建議,我使用了我可以創建的最基本的代碼。 請注意,我在下面的“啟動過程”中使用Powershell社區擴展。 我不知道這是否會影響事情。

我有以下功能

function Populate-Notepad
{
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
Start-Process Notepad 
[Microsoft.VisualBasic.Interaction]::AppActivate("Untitled")
[System.Windows.Forms.SendKeys]::SendWait("blahblahblah")
return
}

可以很好地進行交互。

我有一個名為Parse的函數,該函數查詢POP帳戶,如果找到消息,請采取措施。 因此,所考慮的操作是(定義了$ helptext並且它可以正常工作-正確地對此進行了解析。)

Switch ($cmd)
{
"HELP"     {$text = $helptext}
"NOTE"     {populate-notepad}
default    {$msg = $msg + "Invalid command: $command `n"}
}

火的記事本。 如果我看着任務管理器,它似乎永遠不會出現。 我的猜測是,如果可以解決-以下問題也可以解決。


我有一個Powershell腳本,可以調用Firefox並在Firefox上觸發一堆SendKey(這是一個很長的故事,但是嘗試使用Web調用是有問題的。)它可以很好地交互工作,但是當計划任務運行了一個調用上述腳本的Powershell腳本時Powershell腳本...

Firefox運行...但是它不是交互式的(因此,powershell正在運行,腳本正在啟動。)換句話說,我從沒有看到Firefox窗口。 我不確定這是否重要,但是在任務管理器窗口中始終存在firefox.exe。 但是,我的腳本總是掛起,抱怨找不到Firefox窗口。

就像我說的,這是互動的。 它通過任務管理器使用與常規交互式腳本相同的憑據(此框上只有1個用戶(管理員除外)); 它沒有被隱藏,我嘗試將其作為“以最高特權運行”而無濟於事。

有什么想法嗎?

我在嘗試執行相同的操作時遇到了一些問題, Powershell腳本在另一個會話/上下文中運行(正如我在此處閱讀的那樣, 操縱桌面元素的Powershell腳本不適用於Scheduler )。

因此,您不能使用gui。

我的解決方案是使用此

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

這將打開一個全屏的本地網站,並專注於默認的Web瀏覽器。 之后,您可以使用sendkeys。

附帶說明一下,如果我要使用AppActivate,我將通過捕獲並使用ID來確保它確實是我剛剛開始的過程。

    $iex = Start-Process 'C:\Program Files (x86)\Internet Explorer\iexplore.exe' -passthru 'http://localhost/'
    start-sleep 3
    [Microsoft.VisualBasic.Interaction]::AppActivate($iex.Id)

但是,這不能解決問題,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM