永发信息网

pascal的EXEC调用dos程序停止问题

答案:2  悬赏:40  手机版
解决时间 2021-06-06 14:24
  • 提问者网友:且恨且铭记
  • 2021-06-05 15:01

pascal的EXEC调用dos程序,要等那个程序完成,才能回到你的语句,要怎么让那个程序没有完成,就回到自己的语句?

比如把windows的“计算器”调出来:

{$M $4000,0,0 }
Uses Dos;
Begin
SwapVectors;
Exec(GetEnv('SYSTEMROOT')+'\SYSTEM32\calc.exe', '');
SwapVectors;
End.

只要计算器是不关掉,程序就不得到下一语句,也不会结束``````

最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-06-05 16:29
用shellexecute这个函数就可以了

uses windows;

begin
ShellExecute(0, 'open', 'calc.exe', '', '', SW_NORMAL);
writeln('123123');
readln;
end.

最后一个参数可以指定启动程序时窗口的状态
全部回答
  • 1楼网友:撞了怀
  • 2021-06-05 16:34

这个不行的,除非你写汇编

因为PASCAL在DOS下是单一进程的。所以在一条指令结束之前无法进入下一条指令。除非你改用汇编写~

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯