隐式调用外部程序(100分)

  • 主题发起人 主题发起人 jma
  • 开始时间 开始时间
J

jma

Unregistered / Unconfirmed
GUEST, unregistred user!
如何隐式调用外部程序?
就象WINZIP中调用ARJ,RAR等外部程序一样,没有窗口.
 
用winexec调用时指定参数SW_HIDE。
我曾经做过, 在delphi的程序中调用vfp用这个参数没有出现窗口
不过对dos应用程序好象有问题, 用SW_HIDEdo
s程序不会在后台执行
 
shellexecute最后用SW_HIDE对WIN程序可以,但是ARJ那样可能有问题
TO EYES:do
S下怎么做?人家要ARJ/RAR
 
刚才忘记了,可以把窗口最小化的:))
不过不知道WINZIP是否这样:((
 
一样不行
dos程序好象到后台就停了(或者优先级极低), 在win95下玩过dos游戏你就有体会了
钱达智的笔记中好象提到过这个问题, 也没有给出答案。
 
DOS程序在后台可以运行,不过速度好象慢了点:((
 
象arj这样的没问题!我用过做备份!
 
只要注意修改Default.PIF的属性就行了,
Visual C++也是通过这种方式进行编译的。。。
 
SW_HIDE后当然可以在后台运行, 对于ARJ, 要把命令行参数给正确了, 否则DOS窗口
会提示你输入Yes or No.
此外,do
s程序的快捷方式对ShellExecute, WinExec的显示方式都有影响
 
用sw_hide可以在后台运行,但是不好,因为程序运行完以后还驻留在内存中没
有退出,解决的方法是编一个PIF文件,设好参数,再调用pif文件。
 
用CreateProcess,可以重定向标准输入/输出,
也不会留下尾巴,何乐而不为?
 
使用LMD包中的LMDStarter
设置:
with LMBStarter1do
begin
Command := 'c:/Command.com';
Parameters := '/C Copy C:/COMMAND.COM C:/COMMAND.BAK /Y';
StartOperation := smOpen;
StartOption := soSW_HIDE;
Execute;
//返回码为LastError;
end;

100分拿过来吧 :-)
 
barton:
LMD是什么东东?
请详细讲讲并给出DOWN的地方,thanks
 
jma:
请您决定继续讨论或结束问题!
 
多人接受答案了。
 
后退
顶部