全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1489
推到 Plurk!
推到 Facebook!

如何获取系统中可用串口的名称

答題得分者是:hagar
justm
一般會員


發表:8
回覆:3
積分:2
註冊:2003-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-09 13:51:51 IP:218.108.xxx.xxx 未訂閱
现编一串口通讯软件,需要在界面初始化时,获取系统中所有可用串口的名称,请教各位大大,该如何实现
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-10 07:29:53 IP:202.39.xxx.xxx 未訂閱
http://www.bsdg.org/SWAG/DELPHI/0394.PAS.html
> I'm Looking For a Routine to get the number of serial ports in a
> machine, There is a function GetSerialPortList but Not in Delphi
> Unit Files or any C Header File What function can I use....?    ...and here is it - the best function for that!    function SerialAvail(ComPort : integer) : boolean;
const
  UsedComm : array[0..5] of char = 'COMx';
var
  H : integer;
  {$IFNDEF VER80}
  i : integer;
  CommConfig : TCommConfig;
  {$ENDIF}
begin
  SerialAvail:=false;
  UsedComm[3]:=chr(ComPort $31);
  {$IFDEF VER80}   { Win 3.x }
  H:=OpenComm(@UsedComm,256,256);
  if H>=0 then
  begin
    CloseComm(H);
    SerialAvail:=true;
  end;
  {$ELSE}          { Win95/NT }
  H:=CreateFile(UsedComm,GENERIC_READ or GENERIC_WRITE,
                0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if H<>INVALID_HANDLE_VALUE then
  begin
    CloseHandle(H);
    SerialAvail:=true;
  end;
  GetLastError;
  {$ENDIF}
end;
-- 悟嗎?
justm
一般會員


發表:8
回覆:3
積分:2
註冊:2003-12-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-10 08:16:07 IP:218.108.xxx.xxx 未訂閱
谢谢版主大人的回答,我想知道一个打开无效的串口,究竟是不存在,还是被别人占用了,该怎么办?
系統時間:2024-05-21 18:47:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!