Q&A

  • 두자리 COMPORT 찾게 도와주세요.
안녕하세요?

팁란에서 최용일 시삽님의 글 보고 컴포트를 찾게 만들었는데요.
COM1~9 는 잘 찾아요...
그런데 10 이상 두자리 포트는 찾질 못합니다.

아래 질문 드렸는데 대답 주시는분이 안계셔서 다시 올립니다.

아시는분 도와주세요..

Getcomport() 를 사용했습니다.

감사합니다.
4  COMMENTS
  • Profile
    김성원 2006.10.11 18:30
    자료실을 찾아보시면 cPort라는 컴포넌트가 있는데요 여넘이 포크 검색 및 기타 등등 Port작업을 굉장히 편하게 해줍니다.
    사용법도 무자게 편하고요 소스 포함입니다.

    요넘 가지고 128개까지 포트 제어해보았네요 ㅜ.ㅜ;
    참고하시기 바랍니다.


  • Profile
    델코초 2006.10.11 19:52

    답변 감사합니다.
    그런데, 저는 Asyncpro 로 모든것을 작업한 상태입니다.
    현재 PC에 device active port 를 찾아서 사용하려 하는것이거든요..
    COM1~9 까지는 잘 찾는데, 두자리 포트는 찾질 못하네요.


      var comfile : file;


        for Index := 20 downto 1 do // COM20부터 COM1까지 검색
        begin
            {$I-}
            AssignFile(ComFile, 'COM' + IntToStr(Index));
            Reset(ComFile);
            CloseFile(ComFile);
            {$I+}

            sleep(10);
            if IOResult = 0 then // COM포트가 사용가능하다면
            begin
             portarray[Index] := true;
            end;
         end;//for


    이렇게 사용했습니다.

    부탁 드립니다.
    해결책을 아시는분 도와주세요.



  • Profile
    김성원 2006.10.12 00:43
    cPort 소스를 보니 아래와 같이 되어 있어 조금 수정하였습니다.
    제컴에서는 Com2만 있어서 ㅜ.ㅜ
    참고 하시길 바랍니다.

    var
      fHandle : THandle;
    begin
      fHandle := CreateFile(
        PChar('\\.\' + Uppercase(Edit1.Text)),
        GENERIC_READ or GENERIC_WRITE,
        0,
        nil,
        OPEN_EXISTING,
        FILE_FLAG_OVERLAPPED,
        0);

      caption := 'OK';
      if fHandle = INVALID_HANDLE_VALUE then
        caption := 'err';

      CloseHandle( fHandle );




  • Profile
    델코초 2006.10.13 02:48
    답변 감사합니다.

    팁란의 시삽님이 올려주신 GetComportList 로 해결 되었습니다.
    감사합니다.