아래와 같이 프로그램을 작성해서
comport가 두개인 곳에서는 comport가 두개라고 나왔는데
comport가 한개 장착된 노트북에서 실행시켰는데
1개라고 나오지 않고 2개라고 나옴니다..
음... 계속 이것저것 생각해 봤는데도... 이유를 모르겠습니다.
분명히 comport는 하나밖에 없는데...
다른 이유가 있을까요?
--------------------------------------------------------------
function GetComPortCount: Integer;
var
ComFile: file;
Index: Integer;
begin
Result := 0;
for Index := 1 to 10 do // COM1부터 COM10까지 검색
begin
{$I-}
AssignFile(ComFile, 'COM' + IntToStr(Index));
Reset(ComFile);
CloseFile(ComFile);
{$I+}
if IOResult = 0 then // COM포트가 사용가능하다면
Inc(Result);
end;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
ShowMessage('컴포트 갯수는 ' + IntToStr(GetComPortCount) + '개 입니다.');
end;
예제로 드린것은 물리적인 하드웨어를 검색하는게 아니라 논리적인 하드웨어를 검색하는 것입니다. 물리적인 COM포트는 하나라도 그것을 이용하는 논리적인 COM포트는 여러개일수있습니다. 제어판의 하드웨어 등록정보에서 COM포트가 몇개 잡혀있나 보세요.
^^ 항상 즐코하세요...