Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 5064|回复: 5

send key 送一個鍵到子程序

[复制链接]

该用户从未签到

发表于 2009-7-11 16:10:52 | 显示全部楼层 |阅读模式
不好意思,想問一下,
我寫了一個 Lazarus 的程序,

使用了 multithread,
程序中有2個 thread 在執行,

一個是 main program ,
另一個則由thread 所執行的 function.

而thread 的 function 中,我使用了 TProcess 啟動了
一個command-line utility program.
*.exe

這個 command-line utility program 最後,
DOS 視窗寫著 &quotress any key to exit..."

我想問的是,該怎麼做,
才可以在我的 main program,

送一個鍵,去結束這個 thread 所啟動的 DOS program 呢 ?
在 Delphi 中,

我記得使用 findhandle, 找到了 它的handel值
再送一個 key 就可以了;

但是在 Lazarus 下,
還是不曉得該怎麼完成,

知道的人可以指導一下嗎?
先謝謝了;
回复

使用道具 举报

该用户从未签到

发表于 2009-7-11 18:17:50 | 显示全部楼层
如果你已經有辦法檢測到什么時候這個 utility 執行結束(等待「press any key」)了的話,在那個時候直接將 TProcess 的 Active 屬性設為 False 就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-7-11 18:19:51 | 显示全部楼层
不過你是怎么知道這一點的呢?
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-7-14 17:06:03 | 显示全部楼层

好的,我明白了,
謝謝謝謝.

主要是,不能準確知道,
該子程序何時結束,

再試試別的方法好了。

Thanks a million
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-7-14 17:12:29 | 显示全部楼层
如果你知道你調用的程序的輸出格式的話,
TProcess 的 Options (集合) 屬性里有一項叫 poUsePipes
把這一項選上後就可以用它的 Input Output 屬性 (兩個管道流) 直接跟調用的程序做 I/O。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-7-15 16:19:24 | 显示全部楼层
關於你所說的 poUsePipes,
我在這個網站看過,

http://wiki.lazarus.freepascal.org/Executing_External_Programs
試了  Reading large output  這個 program,

但是目前還是有些問題。。。
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 22:27 , Processed in 0.028673 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表