【问题标题】:While running BATCH, min window and go back to maximized运行 BATCH 时,最小化窗口并返回最大化
【发布时间】:2012-08-25 22:21:12
【问题描述】:

我无法为我的问题找到一个好的答案。也许有人已经有了答案,并且很乐意分享。我正在运行一个批处理文件,并且在某个时间,我想最小化批处理窗口。一些代码稍后,将其最大化或返回到实际大小。

@echo off
mode con cols=100 lines=100
echo My batch is NOT minimized. This message is from a normal window! 
start "window_will_be_minimized" k:\Folder20\MiniMaxi.exe 
start /wait "" cmd /c c:\Folder00\Drawing.exe

Drawing.exe 正在运行。

REM --- At this point my batch window is minimized and the MiniMaxi.exe is closed
REM --- until the Drawing.exe is closed.

Drawing.exe 现已关闭。

REM --- Immediatelly my batch window must return to its previous size.
        Therefore, the MiniMaxi.exe will be launched and then closed

start "window_will_be_MAXImized" k:\Folder20\MiniMaxi.exe
echo Again, this message is from a normal window
pause > nul
exit /b

提前谢谢你

【问题讨论】:

  • 感谢 EitanT,但您添加的这个链接没有清楚地解释如何在运行批处理时最小化窗口。那里的解释不清楚且未经测试
  • 嗯,它确实 向您展示了如何制作一个基本的 C++ 程序,该程序可以最小化带有所选标题的窗口。这基本上就是你想要的,不是吗?
  • 没有直接的方法可以做到这一点。我所看到的一切都涉及使用至少 jscript 并知道窗口以最小化ID#。我相信 EitanT 的建议是最好的。
  • @EitanT ; James K - 谢谢你的回答,但我不知道如何在上面的批处理脚本中实现那个帖子“让批处理文件最小化 DOS 窗口”。有人可以一步一步写教程吗?

标签: batch-processing batch-file


【解决方案1】:

坏消息:批处理文件无法控制自己的窗口是最小还是最大;这必须在调用批处理文件时完成,此时您可以告诉它运行/min、/max 或都不运行/default。新批次将不知道此设置。正如 EitanT 所提到的,它必须由应用程序管理。只有在开始一个新批次时,您才能控制 那个一个是 min、max 还是 normal。

对于计时,您唯一的控制是暂停(就像您在脚本中所做的那样),或者通过执行大约 10 秒的延迟来延迟脚本继续执行的某种方法:

ping -n 10 localhost >nul

【讨论】:

  • 感谢您的回答,但我无法关闭我的批次并立即打开一个新批次(作为镜像),然后将其最小化。我的批处理的配置方式和必须的方式,当它关闭时会触发一些隐藏的“清理”功能。这里不需要计时。
  • 我希望我知道一些可以提供帮助的方法。但是批处理文件无法控制它们的自己的大小或位置。他们必须以交互方式、动态地控制自己,而批处理无法做到这一点。可能让 gethis 起作用的唯一方法是让它们相互生成,这将是痛苦的 - 但可能。需要帮助吗?
  • 是的,你可以帮忙:)。如何编写 MiniMaxi.exe(或 *.vbs)程序?我的批次的瓷砖是“MyBatch”。最小化器将捕获名为“MyBatch”的批处理窗口,然后如果尚未最小化则将其最小化,或者如果尚未最大化则将其最大化。请在顶部查看我编辑的问题。
  • 听起来您同意 EitanT:解决方案是编写自定义应用程序。 freelancer.com 是一个你可以花钱请人写应用程序的网站。
  • @Lizz-如果我要求我在迄今为止访问的所有编程站点和讨论板中免费编写的每个代码都获得 0.5 美元(只是因为我觉得帮助匿名的人很好,在在许多情况下,他们还免费提供周末时间来心甘情愿地帮助我,甚至不知道我是谁或我住在哪里)我可能会成为地球上最富有的人之一。有用以及它触发的感觉,因为它对某人的生活产生了积极的影响,这是一件美好的事情。不幸的是,我不能只推荐人们有用。应该尝试一下。
【解决方案2】:

但是,我无法按照您的要求进行操作,如上所述,您可以在 minimizedmaximizeddefault 状态下生成批处​​理文件。以下将创建一个新批次 xmise.bat 启动它最小化并退出。新批次xmise.bat 将启动 Drawing.exe,等待,启动原始批次(自定义大小的窗口)并退出。然后原批次会删除创建的批次xmise.bat

你可以写

稍后一些代码/隐藏的“清理”功能

到 xmise.bat

@echo off
mode con cols=100 lines=100
if "%var%"=="" echo My batch is NOT minimized. This message is from a normal window!
if "%var%"=="created" echo Again, this message is from a normal window
pause>nul 
if "%var%"=="created" del xmise.bat&cls&goto :end
set var=created
echo start /wait "" "Drawing.exe">xmise.bat
echo start "" cmd /c "%~n0.bat">>xmise.bat
echo exit>>xmise.bat
start /min xmise.bat
:end
exit

Drawing.exe 正在运行。

REM --- At this point the xmise.bat window is minimized and the original.bat (%~n0.bat) exits
REM --- until the Drawing.exe is closed.

Drawing.exe 现已关闭。

REM --- Immediatelly my batch window must return to its previous size.
REM --- the original.bat will be relaunched custom size, xmise.bat exits, & then is deleted.

【讨论】:

    猜你喜欢
    • 2015-07-21
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多