【问题标题】:disable message box for programs that was run from cmd禁用从 cmd 运行的程序的消息框
【发布时间】:2012-09-21 08:14:37
【问题描述】:

我有一个实用程序,它在工作结束时显示带有通知和确定按钮的消息框。我在命令行下运行它,并希望禁用所有可能破坏我的进程并需要用户反应的消息框。有什么方法可以完成这个任务吗?

【问题讨论】:

    标签: windows command-line cmd


    【解决方案1】:

    我建议只添加一个--quiet 命令行开关,这样用户可以更好地控制这种事情。

    如果您想尝试自动执行此操作,您可以在应用启动时检查父 PID,看看它是否为cmd.exe。当然这不是 100% 准确的,因为有更多的场景是用户不希望用户交互。

    【讨论】:

    • 我添加了/Q,但它阻止了只显示输出。问题是我无法修改此实用程序。我按照以下方式使用它:Process.Start("name", "arg") in c# 并等待退出。现在我需要中断进程。显然,这不是一个好的和灵活的决定。
    • 无法自动将 GUI 应用程序转变为不需要用户交互的应用程序。这实际上是不可能的。
    【解决方案2】:

    嗯...您可以使用 VBScript 自动单击或按消息框上的 ENTER。但您需要知道消息框的窗口名称或编号。

    这段代码会将焦点带到一个名为 MESSAGEBOXNAME 的窗口上,然后按 ENTER

    Set oShell = CreateObject("WScript.Shell") 
    oShell.AppActivate("MESSAGEBOXNAME")
    WScript.Sleep 500
    oShell.SendKeys "~"
    

    MESSAGEBOXNAME 是 MessageBox 的窗口名称,应该在消息框的右上角。

    【讨论】:

      猜你喜欢
      • 2022-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多