如何使用带 .VBS 或 .BAT 的进程标识符激活打开的应用程序 window

How to Activate an open application window using the Process Identifier with .VBS or .BAT

我的代码很简单,我只想这样做:

    Set iShell = WScript.CreateObject("WScript.Shell")

    xRepeat:

    ' ** Activate a specify Internet Explorer 11 Window already open (by PID)
    iShell.SendKeys "{TAB}"
    iShell.SendKeys "{CTRL + C}"
    iShell.SendKeys "{TAB} {TAB} {TAB} {TAB}"
    iShell.SendKeys "{CTRL+ V}"
    iShell.SendKeys "{TAB} {TAB} {TAB} {TAB}"
    iShell.SendKeys "{CTRL + V}"

    ' ** Activate a program already open (by PID)
    iShell.SendKeys "{TAB} {TAB} {TAB} {TAB}"
    iShell.SendKeys "{CTRL + C}"

    ' ** Activate a specify Internet Explorer 11 Window already open (by PID)
    iShell.SendKeys "{TAB} {TAB} {TAB} {TAB}"
    iShell.SendKeys "{CTRL + V}"

    If msgbox("Repeat process?", vbYesNo) = vbYes Then
       GoTo xRepeat
    End if

我打开了一些程序,我不想继续使用 "SendKeys {ALT + TAB}"

我在一台访问极其受阻的计算机上工作,基本上我的工作是整天用相同的答案填写表格,所以我希望自动填写。

怎么我用的电脑什么都进不去,求个不用安装的解决方案

我只能使用记事本(.VBS 或.BAT)。啊,我也可以使用 VBA,所以上面的 'automation' 也可以在 .bat .vbs 或 excell.vba 中。我知道很多VBA,但只做成Excel

Ps: 我只能通过notepad.bat "tasklist; @pause"

获取PID

谢谢!

我找到了一个(大)解决方案。我的下一个目标是不要使用 {TAB},我想学习如何获取特定的表单并输入值。喜欢:Document.GetElementByName("username").Value = "ALEXAN"

但我的问题是如何将已打开的 Internet Explorer 设置为对象,然后使用 .Document.GetElementByName

Dim ws

Set ws = CreateObject("WScript.Shell")

If MsgBox("Finalizado?", vbYesNo + vbQuestion, "") = vbYes Then
    ws.AppActivate "Tratar Protocolos - Internet Explorer"
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
    ws.SendKeys "^{c}"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "FINALIZADO"
        WScript.Sleep 200
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "{TAB}"
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "SOLICITAÇAO ATENDIDA"
        WScript.Sleep 200
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "{TAB}"
    ws.SendKeys "^{v}"
        WScript.Sleep 200
    ws.SendKeys "Finalizado"
        WScript.Sleep 200
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "^{c}"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "^{v}"
        WScript.Sleep 200
    ws.AppActivate "Siebel eCommunications Produção - Meio de Acesso - \Remote"
        MsgBox "Copie o CNPJ depoiso dê OK!"
        WScript.Sleep 200
    ws.AppActivate "Tratar Protocolos - Internet Explorer"
        WScript.Sleep 300
    ws.SendKeys "+{TAB}"
    ws.SendKeys "{TAB}{TAB}"
        WScript.Sleep 300
    ws.SendKeys "^{v}"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 300
    ws.SendKeys "Protocolo perfilado com sucesso!"
        WScript.Sleep 300
    ws.SendKeys "^{a}"

ElseIf MsgBox("Pendente?", vbYesNo + vbQuestion, "") = vbYes Then
    ws.AppActivate "Tratar Protocolos - Internet Explorer"
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
    ws.SendKeys "^{c}"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "PENDENTE"
        WScript.Sleep 200
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "{TAB}"
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "STATUS SUSPENSO"
        WScript.Sleep 200
    ws.SendKeys "~"
        WScript.Sleep 200
    ws.SendKeys "{TAB}"
    ws.SendKeys "0"
    ws.SendKeys "{TAB}"
        WScript.Sleep 200
    ws.SendKeys "^{v}"
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}"
    ws.SendKeys "^{v}"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "^{c}"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "^{v}"
        WScript.Sleep 200
    ws.AppActivate "Siebel eCommunications Produção - Meio de Acesso - \Remote"
        MsgBox "Copie o CNPJ depoiso dê OK!"
        WScript.Sleep 200
    ws.AppActivate "Tratar Protocolos - Internet Explorer"
        WScript.Sleep 200
    ws.SendKeys "+{TAB}"
    ws.SendKeys "{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "^{v}"
        WScript.Sleep 200
    ws.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}"
        WScript.Sleep 200
    ws.SendKeys "Protocolo perfilado com sucesso!"
        WScript.Sleep 200
    ws.SendKeys "^{a}"
End If
WScript.Quit