现在有一个delphi编写的程序正在运行,是别人写的,读取串口。为了扩展新功能,我打算编写一个程序,读取该串口的数据。
但是查了一下资料,串口似乎是独占方式打开的,那么我该怎么做呢?用什么语言不是很重要,重要的是要实现。
希望各位高手提供一个详细些的解决办法,谢谢了啊.

解决方案 »

  1.   

    因为每次来了内容以后大家必须读出来判断一下才能知道是否自己需要的,而串口中的内容读出来后就只能由读程序保存,串口不再保存这部分内容了,所以串口没法共享。
    lz可以安装一个虚拟串口程序,如Virtual Serial Port Driver 6.0等,利用其添加每对虚拟串口相当于连接在一起的功能,具体思路如下:
    更改硬件串口名,硬件串口由新编写程序接管
    添加一对虚拟串口,其中的一个串口名与硬件串口原来名称相同,分配给原来的delphi程序;另一个自己编程接管。
    在新编写的程序中,打开硬件串口,读取其中数据,若为添加功能则自行处理,若为原来功能则发送到虚拟串口中,并从虚拟串口中读取数据后发送到硬件串口中去
      

  2.   

    可以使用串口监听的概念做。AccessPort这个串口监听的工具很好用,可惜如果要嵌入自己的程序,就要收费。
      

  3.   

    一般是不行的,
    除非一个程序用HOOK API技术
    或者一个程序接收到数据后转发给另一个程序
    或者建一个服务程序,两个程序都用服务程序读数据