【问题标题】:Advanced uses of the msg * command in a batch file?msg * 命令在批处理文件中的高级用法?
【发布时间】:2011-05-20 08:31:18
【问题描述】:

编辑:我已经开始在这个问题上悬赏 50 给谁给出了最好的答案!

您好,我想知道是否有办法让批处理文件使用msg * "hi" 命令以及默认情况下存在的选项(取消和确定)之外的其他选项出现弹出窗口,我的意思是将自定义按钮添加到弹出消息中,例如“下一步”按钮,它会将您带到另一个带有对话框的弹出消息或类似的内容。总之,有没有办法编辑msg * "text goes here" 命令的结果?

这就是发生的事情......

这就是我想要的:

但是,我也想知道是否可以更改弹出消息的标题及其大小或位置。我知道这开始听起来像是批处理文件中基于 gui 的弹出窗口,但我只是想知道它是否可能以任何方式进行(请记住,我只想使用批处理/shell)。任何信息或想法都会有帮助!谢谢!

【问题讨论】:

    标签: windows-7 popup batch-file cmd


    【解决方案1】:

    首先,我不知道msg.exe 的其他一些未记录的开关,您可以使用它们以您想要的形式创建消息。因为您询问了任何信息或想法,所以我决定写下我的答案。

    关于Dependency Walker 程序msg.exe 使用内部函数WinStationSendMessageWWinStationEnumerateWWinStationQueryInformationWWinStationOpenServerWWinStationFreeMemory 来自winsta.dll。函数WinStationQueryInformationW 已记录,所有其他函数均未记录。不过可以相对肯定的是,这些功能与RpcWinStationSendMessage 中记录的函数和Terminal Services Terminal Server Runtime Interface 中记录的其他 RpcWinStationXXX 函数相同。我个人认为没有必要使用未记录的函数,因为其他记录的函数WTSSendMessageWTSEnumerateSessions(请参阅Remote Desktop Services API)也可以这样做。

    WTSSendMessageRpcWinStationSendMessage 两个函数都有参数pTitleStyle(例如可以是MB_YESNOCANCEL)和pResponse(你也可以感兴趣)。所以我建议你或你的大学里的人自己编写你需要的小工具。您可以在实现中使用记录在案的 WTSSendMessageWTSEnumerateSessions 函数。

    如果您问serverfault.comsuperuser.com 的问题,可能有人会向您推荐一个您可以使用的现有实用程序。

    【讨论】:

    • 对不起,我没听懂你刚才说的话,我很清楚有更有效的方法可以做到这一点,但我只是想知道这是否可能......但是我猜不是..
    • @daniel11:我的意思是,如果一个工具不能满足您的需求,您可以编写另一个工具,主要只调用两个函数 WTSSendMessageWTSEnumerateSessions。我想您也可以从 python 中执行此操作(例如,参见 stackoverflow.com/questions/252417/…
    【解决方案2】:

    抱歉,无法更改批处理“msg”命令显示的弹出窗口。

    Oleg 说的是,如果你想创建一个自定义弹出窗口,你不能用 windows 的“msg”命令来做到这一点。除了创建您自己的“msg”命令之外别无他法,它会打开一个自定义弹出窗口(并且有很多方法可以做到这一点,由 Oleg 解释)。

    【讨论】:

    • 谢谢,这正是我的意思。
    • 哦,我明白了,好的,谢谢! (我想这是一个简单的 50 分)
    【解决方案3】:

    msg * text 在 Windows 10 中不起作用。不过我制作了一个程序来提供帮助

    @ECHO Off
    echo -downloading paused-
    echo MsgBox "are you sure you want to download 'msgBox extension' by Ronan? Oh wait ,sigh,I forgot to add the yes or no part...ok,hit ok for yes,or hit the X on the cmd terminal for no." > msg.vbs
    msg.vbs
    cls
    del msg.vbs
    echo alrighty then!
    pause >nul
    cls
    @ECHO On
    mkdir "msgBox extension"
    echo start /min cache\messageB ^& exit > "msgBox extension\messageBox.bat"
    echo blank..? > "msgBox extension\text.txt"
    mkdir "msgBox extension\cache"
    >"msgBox extension\cache\messageB.bat" (
    echo set /p var=^< text.txt
    echo echo MsgBox " %%var%% " ^> msgbox.vbs
    echo msgbox.vbs
    echo del msgbox.vbs
    echo exit
    )
    pause
    @Echo Off
    cls
    echo ok,good.you downloaded the software.just for good measure,do a scan of your computer,find viruses, THEN DELETE THE FOLDER ASAP. it means someone stole this program and added viruses to it.ooorrrrrrrr it's something else.
    pause >nul
    cls
    echo now I will tell you how to use the software
    echo in a batch file,or cmd prompt,: "msgBox extension\text.txt" will input text into the software. which will be used in : "msgBox extension\messageBox.bat" will display a text box of the imputed text.
    echo good luck!
    pause >nul
    

    要使用它,在 cmd 或批处理文件中,echo text here &gt; "msgBox extension\text.txt" 是输入,"msgBox extension\messageBox.bat" 将通过文本框激活它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多