[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理如何找出当前所有窗口的名字?

您好,

我写了一段代码
echo 开始重启Maya,请稍后...
"C:\Program Files\Autodesk\Maya2008\bin\maya.exe"
echo 已经重启Maya。按任意键退出。
pause
想得到的效果是:用户看到了“开始重启Maya,请稍后...
”的信息,等了一会,maya启动好了,cmd窗口自动显示“已经重启Maya。按任意键退出。”。

我遇到的问题是:maya启动好了,cmd窗口已经失去焦点,所以语句不再往下执行了,回到cmd窗口,用户还是看到那句话“开始重启...”,会感到困惑。怎样才可以让cmd窗口显示正确呢?

谢谢浏览。
------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
9月24日编辑:
在大家帮助下,我想到了一个思路,见16楼,利用maya启动完毕,任务栏就会有maya的窗口了(‘启动完毕’前没有)来判断。新的问题就是:如何找出当前所有窗口(按alt+tab看到的那个列表)的名字?
原标题:[文件操作] 如何在用批处理启动程序后继续执行余下的代码
新标题:[系统相关] 如何找出当前所有窗口的名字?

[ 本帖最后由 bsdzhu 于 2009-9-24 11:34 编辑 ]

试一下这个:
  1. @echo off
  2. echo 开始重启Maya,请稍后...
  3. start "" "C:\Program Files\Autodesk\Maya2008\bin\maya.exe"
  4. echo 已经重启Maya。按任意键退出。
  5. pause
复制代码


注解,
批处中如果在启动的程序前没有加上start的话,系统默认是用call 打开程序的.
而call相当于调用子程序,在子程序没有结束,是不会返回CMD窗口执行下一行语句的!

[ 本帖最后由 januapr 于 2009-9-19 04:17 编辑 ]

TOP

回复 2楼 的帖子

您好,
谢谢您告诉我start和call的区别。
不过,我试过了

echo 开始重启Maya,请稍后...
start "" "C:\Program Files\Autodesk\Maya2008\bin\maya.exe"
echo 已经重启Maya。按任意键退出。

第二个echo的内容总是马上就显出来了,应该是等maya启动好了它才出来。
因为实际应用中,maya这个软件启动比较耗时,所以我想要的就是bat监视着maya刚刚启动好了,于是它告诉用户,启动好了。

TOP

“想要的就是bat监视着maya刚刚启动好了,于是它告诉用户,启动好了。”

这个我也搞不来!

要么就是程序启动了,tasklist里有它的进程;
要么就是程序没有启动,tasklist里没有它的进程。
这个倒是好判断。

但是你要判断程序启动了,并且完全加载完成,这个怎么判断?
我也恳请高手指点,呵呵!!

TOP

加参数 /wait

TOP

回复 5楼 的帖子

加 /wait也不行。
WAIT        启动应用程序并等候它结束


加上/wait参数后,把启动的程序关掉后,才接着往下执行。
(*^_^*)

TOP

回复 3楼 的帖子

启动完成后有什么特征么?要不就估计启动大概有多长时间,然后用个命令延时,最后再执行echo。
Still with wax

TOP

  1. @echo off
  2. echo 开始重启Maya,请稍后...
  3. start "" "C:\Program Files\Autodesk\Maya2008\bin\maya.exe"
  4. ping 127.0.0.1 -n 20>nul
  5. echo 已经重启Maya。按任意键退出。
  6. pause
复制代码
Still with wax

TOP

呵呵 应该找到 一些容易判断的条件
比如说 启动完后多一个进程 或者启动完成后 有一个进程会自动退出
这样就好办了   没用过 MAYA  会MAX

TOP

回复 9楼 的帖子

一般的程序都是一执行就会出现在任务管理器中。所以不具有通用性,就事论事,针对这个maya的软件。应该延时一下就可以了。
Still with wax

TOP

批处理怎么知道MAYA是否加载完毕啊....这个没有任何特征的...不可能知道...电脑毕竟不是人啊
就算是人,吃了个面包后,难道能知道面包啥时候被完全消化的?

TOP

延時也不靠譜,因爲電腦配置不一樣,啓動速度也就不一樣了

TOP

所以说纯P估计难做到,用第三方或者用VB之类的更强大的语言
Still with wax

TOP

我想第三方也很难做到..或者说很费时间...

TOP

谢谢各位朋友。
看了大家的帖子,得出思路应该是查看一下,maya刚刚好启动完毕时,系统的变化,比如新建了什么文件,或者某个文件正在使用等等。
目前还没发现Maya这个程序带给系统的的“变化”。

[ 本帖最后由 bsdzhu 于 2009-9-20 23:00 编辑 ]

TOP

返回列表