【问题标题】:Can an already running program's window be hidden?可以隐藏已经运行的程序的窗口吗?
【发布时间】:2015-03-20 13:29:36
【问题描述】:

3 年来,我一直在使用 wsh 和 iMacros 一起运行 vbscripts。我知道 iMacros 浏览器本身有一个隐藏运行的选项,但我必须使用的基于 Web 的数据库界面在 iMacros 浏览器中不起作用。出于这个原因,我不得不使用 Internet Explorer。我对脚本本身或它的运行方式没有任何问题。我想改进的是 Internet Explorer 窗口本身的处理方式。

目前,当 iMacros 启动时,它会在非最大化状态下创建 IE 窗口,该状态与前一个窗口的创建位置级联。由于 iMacros 的行为,然后我使用 iMacros 脚本调整窗口大小,以便为脚本呈现足够的页面以查看它需要的所有内容。

Set iim1 = CreateObject ("imacros")
iret = iim1.iimOpen ("-ie -iePrivate", TRUE, 300)
iret = iim1.iimPlayCode("SIZE X=" & scrWidth & " Y=" & scrHeight)

这一切都很好,花花公子。这些脚本计划在特定时间运行,从数据库中收集信息,然后将这些数据导入 Excel 电子表格并打印出来。

我想做的是在这些脚本运行时隐藏 IE 窗口。因为我没有先创建 IE 窗口 (Set objIE = CreateObject("internetexplorer.Application")),所以我无权访问 IE 窗口对象。我让 iMacros 使用 -iePrivate 标志创建窗口,这样如果我应该在脚本执行时登录并在数据库中工作,它就不会干扰我自己的 IE 窗口。但是,它确实会在脚本执行时尝试获取焦点并成为活动应用程序。这有时会很烦人。我的目标是能够与我的同事共享这些脚本,但我不希望 IE 窗口在他们可能正在处理其他事情时弹出。

有没有办法获取 iMacros 创建的 IE 对象,以便隐藏窗口?

【问题讨论】:

    标签: windows internet-explorer vbscript imacros wsh


    【解决方案1】:

    这适用于 Internet Explorer 和 Explorer 窗口(它们曾经是同一个程序)。

    Set objShell = CreateObject("Shell.Application")
    Set AllWindows = objShell.Windows
    For Each window in AllWindows
        msgbox window.locationname
    Next
    

    【讨论】:

    • 我已经测试过这段代码。它可以找到 iMacros 创建的窗口,但是该窗口仍然可见。如果它只可见一秒钟左右,那最终可能会很好。但是,我仍然无法“隐藏”这个窗口。有什么建议吗?
    • 有一个命令行程序可以在我的 skydrive 上隐藏窗口。 skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121我觉得这个zip叫做showhidewindows。
    • 这不能通过脚本本身(使用 wsh 和 windows API)而不需要另一个外部程序来完成吗?如果没有,那很好,但如果有办法做到这一点,我很想知道或至少指出正确的方向。
    • 没有。任何运行时都不会让您弄乱其他程序的窗口。在正常的编程中,与脚本相反,应该没有必要。所以 API 调用是唯一的方法。脚本语言被阻止进行 API 调用。因此,我的 skydrive 上带有源代码的程序(也在stackoverflow.com/questions/27248528/… 上的 SO 上)适用于 VB6。所有计算机都安装了 VB.NET,因此您可以在记事本中自己制作。
    • 这里是制作 VB.NET 窗口函数的一般原则。对于 VBS 可以使用的 COM 类 stackoverflow.com/questions/26341753/… 并制作命令行程序 social.msdn.microsoft.com/Forums/en-US/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多