我在delphi的Timer里,需要每 1 seconds 就对计算机的I/O port执行一次读、写操作(example: from 04F0 to 04FF I/O),我怎么才能实现呢?
请主要写清楚如何实现读、写I/O port 的详细过程。
兄弟在此谢谢各位大虾了。

解决方案 »

  1.   

    用第三方控件,如supertimer,tthreadtimer等
      

  2.   

    thank you very much !!
      

  3.   

    时间要求严格吗?
    要求严格的话可以用,CreateWaitableTime,加上线程来做,这是内核对象定时器,比较精确。线程可以等待这个对象以实现阻塞,到时间就会活跃,然后再设置状态,再等待。具体看MSDN。GetTickCount是一个比较精确的计时,但他无法让你的线程阻塞,你只有不听的监视他的变化,这不是一个好的选择。
      

  4.   

    meica(赵一人) :
    你能不能告诉我怎么得到这个控件,以及如何使用?
    谢谢!!
    在线等待!!!
      

  5.   

    BlueTrees(蜗牛) :
    时间要求不是很精确,每次误差 〈 20ms 都能够接受。我的目标是能够用达到此性能就行了,没有必要去追求高精度!!
    你能不能在详细一些,比如说具体到 句柄 ?
    谢谢!!!!
    再现等待!
      

  6.   

    j:=GetTickCount;
    while true do
    begin
      Application.processMessages;
      i:=GetTickCount;
      if i-j >1000 then
      begin
        j:=i;
        //do your things here
      end;
    end;
    这个好像有一点问题,就是说在开机很长一端时间后,i-j就小于0了。因此你如果采用这个方法的话,先看看GetTickCount说明。
      

  7.   

    这个控件太好找了,用google搜索 delphi vcl timer ,就行了