回 帖 发 新 帖 刷新版面

主题:2个书上没有的简单的问题 先答先得分

1.请问 怎样才能在电脑输出的同时,使你自己也能输入(使电脑读进去);[比如说 24点那个游戏,记时器在走时也能自己输入]

2.怎样运行一个已有的外部.exe程序.[请附上要用的单元以及函数].

回复列表 (共5个回复)

沙发

(1)这就必须用跟踪的办法。

(2)在DOS里打开。(先用PATH来确定路径,再直接输入文件名)

板凳

请再详细点行吗?特别是第一个. pascal

3 楼

1.多线程,TThread类实现
2.shellexecute函数(API)

Delphi下

4 楼

第一个问题我想应该使用多线程编程来实现
但在Turbo Pascal中,我暂时没发现线程管理方面的东西

如实在想使用多线程,可以试试VC++环境下的SDL扩展库,我最近正在学这个.

5 楼

第1个,应该用GetIntVec过程和SetIntVec过程来实现。
用GetIntVec过程来获取中断向量,
用SetIntVec过程来修改中断向量,使这个中断向量指向你自己写的中断服务程序. 

上面说的貌似有些复杂,建议楼主研究研究Help文档中关于Keep过程的说明.

第2个,这样实现:
{$M 8192,0,0}           {把内存留给要执行的程序}
program lx;

uses Dos;               {引用DOS单元}

var
  Command: string;

begin
  repeat
    Write('DOS Command: ');
    ReadLn(Command);      
    if Command <> '' then begin
      Exec(GetEnv('COMSPEC'), '/C ' + Command);
                        {执行DOS命令}
    end;
  until Command = '';
end.

上面这个程序的核心代码就是这一句:

Exec(GetEnv('COMSPEC'), '/C ' + Command);

这句相当于直接执行一条DOS命令。例如

Exec(GetEnv('COMSPEC'), '/C Format A:');

就是格式化A盘.

PS: 我最近在写一个关于pascal高级技巧的教程,写完了我会发上来.

以上

我来回复

您尚未登录,请登录后再回复。点此登录或注册