主题:2个书上没有的简单的问题 先答先得分
zzy8200
[专家分:30] 发布于 2007-08-24 15:46:00
1.请问 怎样才能在电脑输出的同时,使你自己也能输入(使电脑读进去);[比如说 24点那个游戏,记时器在走时也能自己输入]
2.怎样运行一个已有的外部.exe程序.[请附上要用的单元以及函数].
回复列表 (共5个回复)
沙发
Matodied [专家分:7560] 发布于 2007-08-24 19:28:00
(1)这就必须用跟踪的办法。
(2)在DOS里打开。(先用PATH来确定路径,再直接输入文件名)
板凳
zzy8200 [专家分:30] 发布于 2007-08-24 20:52:00
请再详细点行吗?特别是第一个. pascal
3 楼
punkrocker [专家分:720] 发布于 2007-08-25 11:20:00
1.多线程,TThread类实现
2.shellexecute函数(API)
Delphi下
4 楼
游侠UFO [专家分:1200] 发布于 2007-08-27 10:56:00
第一个问题我想应该使用多线程编程来实现
但在Turbo Pascal中,我暂时没发现线程管理方面的东西
如实在想使用多线程,可以试试VC++环境下的SDL扩展库,我最近正在学这个.
5 楼
maxumi [专家分:2200] 发布于 2007-08-28 13:37:00
第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高级技巧的教程,写完了我会发上来.
以上
我来回复