怎样调用外部的BAT文件?

时间:2022-09-29 23:31:50
我试过用ShellExecute和winexec来调用,但都不成功
  用它们可以调用EXE文件,但我的是一个tomcat的启动和关闭文件(startup.bat和shutdown.bat),我得用我这个程序来控制tomcat的启动和关闭,但怎么调用都不成功,只是黑屏(cmd状态下)一闪,正常的应该是黑屏下显示正在启动,然后启动成功,就停在这个状态下了。
  请问哪位大侠知道这是什么原因?怎么处理?

6 个解决方案

#1


我试过用ShellExecute和winexec来调用,但都不成功

====================================
可以的。我想是你的.bat有问题吧

#2


不是BAT有问题,我在“开始”-“运行”里可以直接运行,很正常。
我说的不成功是程序调用BAT后黑色屏一闪而过,并没有启动或关闭Tomcat.

#3


很简单!
Win2k/XP下的
WinExec(PCHar('cmd.exe/c a.bat'), SW_Show)

http://lysoft.7u7.net

#4


用ShellExecute函数时不要忘记在uses里加上ShellAPI文件

#5


小李飞刀,谢谢提醒,但这点我还是做了,我调用别的程序是成功的。
我认真查了一下,调用一个简单的BAT可以,但调用Tomcat的启动文件就不行,好象是说环境变量不对。但奇怪我为什么在“开始”-“运行”里就没有任何问题,而在delphi里调用就会环境变量没设呢?哪位大侠知道在delphi调用的BAT环境跟在cmd下有什么不同吗?

#6


ShellExecute(Handle, 'open', PChar('c:\test\app.exe'), nil,这里加入环境变量就可以啦, SW_SHOW);

#1


我试过用ShellExecute和winexec来调用,但都不成功

====================================
可以的。我想是你的.bat有问题吧

#2


不是BAT有问题,我在“开始”-“运行”里可以直接运行,很正常。
我说的不成功是程序调用BAT后黑色屏一闪而过,并没有启动或关闭Tomcat.

#3


很简单!
Win2k/XP下的
WinExec(PCHar('cmd.exe/c a.bat'), SW_Show)

http://lysoft.7u7.net

#4


用ShellExecute函数时不要忘记在uses里加上ShellAPI文件

#5


小李飞刀,谢谢提醒,但这点我还是做了,我调用别的程序是成功的。
我认真查了一下,调用一个简单的BAT可以,但调用Tomcat的启动文件就不行,好象是说环境变量不对。但奇怪我为什么在“开始”-“运行”里就没有任何问题,而在delphi里调用就会环境变量没设呢?哪位大侠知道在delphi调用的BAT环境跟在cmd下有什么不同吗?

#6


ShellExecute(Handle, 'open', PChar('c:\test\app.exe'), nil,这里加入环境变量就可以啦, SW_SHOW);