请问:我若是想在Delphi中运行DOS命令(WIN2K,WIN98下),该怎样做?--Keeper2000(50分)

  • 主题发起人 主题发起人 tomol
  • 开始时间 开始时间
T

tomol

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:我若是想在Delphi中运行DOS命令(WIN2K,WIN98下),
该怎样做?带参数和不带参数的--Keeper2000
 
每次我都是做批命令,希望知道其他方法
 
WinExec('文件的路径和程序名及参数',sw_hide);
或者WinExec('文件的路径和程序名及参数',sw_show);
 
winexec,shellexecute
我都是早就试过的,但是都无法带参数执行
系统环境:2000,xp
 
winexec(pchar('c:/command.com /c xxxx.exe'),sw_hide);
 
可以带参数的:
Var
;ExecName,
;ExecPara ;: String;

SetLengTh(ExecName,119);
SetLengTh(ExecPara,119);
ExecName:='你的程序位置'; { 必须加全路基径和.EXE或.COM }
ExecPara:='程序的参数';
WinExec(PChar('C:/COMMAND.COM /C '+ExecName+' '+ExecPara),SW_NORMAL);
{ 若想不可见请用SW_HIDE }
 
winexec('C:/WINDOWS/system32/command /c C:/WINDOWS/system32/format a:',sw_normal);
没反应,该如何改?(xp2600)
 
to xiao_min:
1. 你的问题我可以搞定!
2. 你的Win版本?
3. 你给加分吗?
 
to wql
如果解决,我要的是直接调用,比如winexec,shellexecute
不仅仅是format a:之类的,要可以带重定向的如format a: <y >x
我要的是98,2000,xp下都能OK的
当然加分,你说要多少
 
可直接用WINEXEC('COPY A:/PC.EXE C:/TOOLS/.',SW_HIDE);
SHELLEXECUTE()不过最好不这么用,直接在WINDOWS下编程不就可以了吗!
 
to dpfans
通不过,我是在xp2600+d5下做的,你们在回答之前真的
都实际测试过么????(如果已经测试过,请原谅我的乱讲)
WINEXEC('COPY h:/test/mydll.dpr h:/.',SW_HIDE);

这种带参数调用,我以前在98,2000,xp里都无法成功
 
WIN98一定可以,在XP里可能不行我没试过,因为XP不再包含DOS是个纯32位的操作系统,
这样吧!你在WIN98的MSDOS方式下试一下如果不行,你的系统有问题,如行那么这个语句
也一定行,再者你看一下DELPHI的帮助不记得后面的参数据了,这样把你这样用一下决对可
以把SW_HIDE换成1看看,我想可能是参数不对吧!
 
刚到98下去试了一下,MSDOS方式当然OK,程序调用仍然通不过
以前在桂林工作的时候,这样调用不成功,现在在深圳工作,
仍然不成功,你不会说我用的98都正好有问题吧
 
2000下和XP下就没有Format程序,你调用担然不成功!!!
 
乱讲,2000与xp当然是有FORMAT程序的
而且98也不成功呀
 
WINEXEC('COMMAND FORMAT/Q',sw_normalshow);
 
讲了半天你到底有什么错,把错误语句贴出来,出会是没有 use shellapi吧!
 
直接执行通过,没有任何错误,但是没有结果
 
to xiao_min:

下面程序通过验证:
1. 在9x下:
winexec('C:/WINDOWS/COMMAND/format.COM a:',sw_normal); // 执行为英文提示
// 必须加.COM

2. 在2000和XP下:
winexec('C:/WINNT/SYSTEM32/FORMAT.COM ;A:',sw_normal);// 执行为中文提示
// 必须加.COM
 
可以用以下方法调用:(以DOS命令的dir为例)
winexec('command.com/c dir>d:/a.txt',SW_HIDE);
dir命令的结果保存在d盘的a.txt文件中。其他的dos名令也可以用此法.[:)]
 
后退
顶部