Q&A

  • CreateFile 함수로 USB포트 접근 관련 사항입니다.
USB 케이블로 연결된 프린터를 제어 하는 작업을 하고 있습니다.

상용 프로그램에서는 'USB002'로 포트가 잡혀 있어서 아래 코드와 같이 연결했는데

연결장비를 찾지 못하는것 같네요..

USB\는 범용직렬 컨트롤러에 USB인쇄지원 포트로 되어있습니다.

어느곳 찾아보니까 디바이스 명을 장치 인스턴트 ID 같은걸로 하는것 같던데..

잘 모르겠네요

아시는분들 계시면 답변해 주시면 감사하겠습니다~!!


코드 예)

  LPTHandle:= CreateFile('\\.\USB002',GENERIC_WRITE, 0 , PSecurityAttributes(nil),
                         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);

  if LPTHandle <> INVALID_HANDLE_VALUE then
  begin

    WriteFile(LPTHandle, sData , length( sData ) ,  dW ,  nil );
    CloseHandle(LPTHandle);
  end;
4  COMMENTS
  • Profile
    이정욱 2011.01.05 06:37

    보통은 USB를 직접 제어하는것이 아닙니다. 전통적인 델파이 방식으로 인쇄 하시면 됩니다.


    Uese 절에 Printers 를 추가하시구~


        for i := 0 to Printer.Printers.Count - 1 do

            cbDriver.Add(Printer.Printers.Strings[i]);


    위처럼 하시면 일단 윈도우에 연결된 프린터 목록을 구해 올 수 있습니다. cbDriver 는 콤보 박스형태이니.. 그냥 TStrings 형태로 하셔도 되겠죠 ^^


    그리고 나서 


        AssignPrn(fhMsg);

        Rewrite(fhMsg);

        

    로 여시고, 
          CloseFile(fhMsg);
    로 닫으시면 됩니다.

    여기서 fhMsg 는 TTextFile 형입니다.


      WriteLn(fhMsg, '프린트 합시다~');


    을 하시면 인쇄가 됩니다. ^^


    Printer.Canvas 속성을 이용하셔서 일반 Canvas 다루듯 다루시면 됩니다. ^^


    위 처럼 구현하시면 됩니다. ^^





  • Profile
    파랑망토 2011.01.05 18:25

    관심 갖아주셔서 감사합니다~ 


    기존에 시리얼포트나 패러럴 포트의 경우에는 직접제어를 했어서 


    그와 같은 방법으로 제어를 하려고 하기위해서


    프린터 드라이버를 이용한 방법이 아니라 포트를 이용해 직접 제어하는 방법을 찾고 있었습니다 . 



  • Profile
    이정욱 2011.01.06 22:50

    아... USB를 직접 제어 하시려나 보군요.. 그러려면.. 각 프린터마다 다르게 되어있는 프로토콜들 때문에 프린터마다 다르게 만드셔야 할텐데...


    일단 USB쪽 관련 자료는 저희 자료실에 올라와있습니다.


    http://www.delphi.co.kr/?mid=downloads&search_target=title&search_keyword=usb&document_srl=165252


    소스가 포함되어있으니 한번 확인해보세요 ^^

  • Profile
    파랑망토 2011.01.07 22:27

    답변해주셔서 감사합니다.


    HID는 입력에 관련된 DEVICE 더군요.. 마우스 , 키보드 , 조이스특 등등..


    일단 프린터 지원포트에 대해서는 인식을 못하는것 같더라구요... ㅜㅠ


    조금더 찾아 봐야겠네요.


    일단 포인트는 드릴께요 ~


    수고하세요~!!

    • 파랑망토
      2011.01.05 02:23
      대략 이런식으로 하면 디렉토리 스트를 불러옵니다.조금 응용하면 하위폴더의 하위 폴더 리스트도 가져오는...
    • 구창민
      2011.01.05 05:27
      아래 코드는 디렉토리를 검색하여 파일을 찾는 예제입니다.원하시는 내용이 아래 코드에 모두 들어있습니다...
    • 델파이최고
      2011.01.06 19:22
      구창민님 로직과 비슷하게는 구현해봤는뎅~ 해결이 안되더군요 ㅠ.ㅠ;;; 파랑망토님 로직을 써보니~ 역시나...
    • 곽효근
      2011.01.06 22:22
      창민님께서 올린 소스중에 재귀적 호출을 한다 부분이 핵심입니다.하위 폴더 탐색할때 주로쓰는 방식인데 ...
    • 델파이최고
      2011.01.06 23:58
      백록화님 감사합니당..  
    • 백록화
      2011.01.07 00:02
      문법강조가 잘 안돼서 삽질 하고 있는데...그 새 보신 모양이군요 ㅋ 
    • 백록화
      2011.01.07 00:07
      function GetDirName(AList: TStrings; ABaseDirName: String): Integer;  var    pSR...
    • 이정욱
      2011.01.05 06:37
      보통은 USB를 직접 제어하는것이 아닙니다. 전통적인 델파이 방식으로 인쇄 하시면 됩니다.Uese 절에 ...
    • 파랑망토
      2011.01.05 18:25
      관심 갖아주셔서 감사합니다~ 기존에 시리얼포트나 패러럴 포트의 경우에는 직접제어를 했어서 ...
    • 이정욱
      2011.01.06 22:50
      아... USB를 직접 제어 하시려나 보군요.. 그러려면.. 각 프린터마다 다르게 되어있는 프로토콜들 때문에 ...
    • 파랑망토
      2011.01.07 22:27
      답변해주셔서 감사합니다.HID는 입력에 관련된 DEVICE 더군요.. 마우스 , 키보드 , 조이스특 등등..일단 프...
    • 백록화
      2011.01.04 02:43
      DbGrid류에는 RowCount가 없어요..(확장 DbGrid에도 있는게 드물껍니다.) 전체 행수를 알고 싶다는 연결된 ...
    • 스카페이스
      2011.01.04 02:55
      생초보입니다. TStringGrid로 타입캐스팅은 어떻게 해야 하나요?
    • 백록화
      2011.01.04 02:58
      TStringGrid(CRDbGrid1).RowCount; 
    • 스카페이스
      2011.01.04 03:09
      잘 읽어 오네요. 백록화님 이 고마움을 어떻게...
    • 백록화
      2011.01.03 20:11
      D7 에서는 DateUtils.pas 에 보시면 WeekOf 함수가 있습니다. 
    • 치꼬
      2010.12.31 22:13
      view > OptionsSelection > CellSelect 속성값을 True 로 하면 됩니다. 
    • 호리미
      2011.01.04 02:49
      보통 폼에 퀀텀그리드를 올려놓으면 기본적으로 OptionsSelection 속성값에 CellSelect가 True입니다. 현재...
    • 치꼬
      2011.01.04 04:09
      음..이상하군요. 혹시.. 디자인이 아닌 실행시 뭔가 설정이 되는건 아닐까요?
    • 델파이
      2010.12.30 14:41
      중국어를 입력하실 때 아래의 함수를 이용해보세요.   function URLEncode(const S: AnsiString): A...
    • 대리피스
      2010.12.31 02:57
      중국어는 웹에서 입력하고 그 입력값을 wideString 으로 받아오는 형식인데.. 그럼.. 위의 URLEncode 함수...
    • 이정욱
      2010.12.31 05:39
      받아오실때도 ansistring으로 받아오셔야 합니다. 단 UrlEncoding을 하신 후 받아오셔야겠죠.
    • 이정욱
      2010.12.29 08:50
      파일명 대신 폴더명을 주시면 되실텐데요? 파일이나 폴더나 다루는것은 같습니다.
    • 델파이최고
      2010.12.29 19:04
      ㅎㅎ 못가져오던데요 ㅋㅋㅋ 다시 한번 머리 쌈매봐야 겠네요  
    • 백록화
      2010.12.29 20:24
      정욱님 말씀대로 파일이나 디렉토리나 같이 다루는데..파일도 그렇지만 디렉토리명을 바꾸는것은 마지막수...
    • 델파이최고
      2010.12.30 20:13
      아 그럼~ 폴더 생성일자를 알아내면 되겠네요 ^^
    • 구창민
      2010.12.30 08:34
      백록님 열렙 하시네요.. 파티좀..
    • 이정욱
      2010.12.28 00:50
      AddressItem := AMsg.BccList.Add; AddressItem.Address := 'midmee@midmee.com'; <-수신확인?AddressIt...
    • 이정욱
      2010.12.28 04:46
      아래의 파일은 첨부파일을 어떻게 다루는지 나온 소스 입니다.   procedure TMailerForm.btnSendMai...
    • 델파이최고
      2010.12.28 06:54
      if FileExists(FileListBox1.Items.strings[0]) then      TIdAttachmentFile.C...
    • 이정욱
      2010.12.28 14:10
      {$APPTYPE CONSOLE}uses SysUtils, IdSMTP, IdAttachment, IdMessage, IdMessageParts, IdEMailAddres...
    • 델파이최고
      2010.12.28 23:40
      ㅎㅎ 소스를 보고 코딩해서~ 보내봐도~ 역시나 This is a multi-part message in MIME format --L1lHvf=_p...
    • 델파이최고
      2010.12.29 01:48
      감사합니당 ^^
    • 순수시대
      2011.03.05 02:58
      혹시 메일 View(다음메일...)가 혹시 아웃룩인가요 ??? (죄송 궁금해서요)
    • 이정욱
      2010.12.28 00:09
      질문 내용만 보고는 뭐라고 말씀드리기가 어렵습니다...ㅡㅡ;;;   그 부분의 소스를 보여주셔야 문제...
    • 이정욱
      2010.12.27 01:34
      인디는 무료입니다... 오픈소스 프로젝트 입니다.......제가 드린 링크에 가시면 문서자료도 많습니다. 한...
    • 델파이최고
      2010.12.27 17:57
      이것 저것 다 해 보아도~ 통~~ 답이 안나와서요~ ㅎㅎㅎ 이번에는 답 나와야 하는뎅 ㅋㅋ
    • 이정욱
      2010.12.26 23:18
      http://www.delphi.co.kr/?mid=downloads&search_target=title&search_keyword=smtp&document_...
    • 이정욱
      2010.12.26 23:22
      또한 말씀하신데로 검색을 해보니.. http://www.ararat.cz/synapse/doku.php/public:howto:smtpsend ...
    • 델파이최고
      2010.12.26 23:32
      첨부파일 참조 부탁드립니다. 에러가 나는 부분은 컴포넌트 버젼이 틀리다고 나오는뎅 ㅋㅋ 델7에서 인디1...
    • 이정욱
      2010.12.26 23:47
      인디 설치가 제데로 안된것 입니다.. 과거의 인디를 지우시고, Search Path에서도 지워주셔야 합니다. ...
    • 델파이최고
      2010.12.27 00:14
      아무리 지우고 다실 깔아도 똑같네요~ ㅠ.ㅠ; 인스톨팩케지로만 파일을 가지고 있어서요~ 소스로 컴파일은 ...
    • 이정욱
      2010.12.27 00:22
      http://www.indyproject.org/Sockets/Docs/index.EN.aspx 가시면 있습니다..
    • 델파이최고
      2010.12.27 01:02
      ㅎㅎ 가보니~ 유료내요 ㅋㅋ ㅠ.ㅠ;  
    • • • •
    • 이정욱
      2010.12.26 20:58
      Uses 절에 IdEMailAddress 를 추가해주셔야 합니다...
    • 델파이최고
      2010.12.26 21:12
      매번감사합니다. 하지만 아직도 useTLS 속성을 못 찾았습니다. ㅠ.ㅠ
    • 이정욱
      2010.12.26 22:10
      제 생각에는 아직 인디가 과거 버전이 동작하고 있지 않나..라고 예상이 됩니다. 과거 버전의 인디를 삭제 ...
    • 델파이최고
      2010.12.26 22:13
      과거 인디 삭제 되었습니다. 왜냐면~ 아이콘이 처음과 이번꺼라 바뀌었거덩요ㅋㅋㅋ 팩케지 에서 삭제하고 ...
    • 델파이최고
      2010.12.26 22:18
      혹시 몰라서 그러는뎅 인디 파일 이것 맞나요
    • 이정욱
      2010.12.25 22:05
      var  AMsg : TidMessage;  AddressItem : TidEmailAddressItem;begin  AMsg...
    • 델파이최고
      2010.12.26 02:31
      감사합니다. 궁금한점 있으면 다시 한번 조언 부탁 드릴께요 ^^
    • 델파이최고
      2010.12.26 02:34
      이상하네요~~ idsmtp 컴포넌트에 UseTLS속성이 없는뎅! 어디에 있는지요?
    • 델파이최고
      2010.12.26 02:41
      제가 아직 미흡 하여 AddressItem : TidEmailAddressItem; 안된다는뎅 ㅠ.ㅠ;  
    • 델파이최고
      2010.12.26 02:46
      AMsg.Body.LoadFromFile(ExtractFilePath(Application.ExeName)+'\RegMail.txt'); 본문을 텍스트로 뿌려주...
    • 이정욱
      2010.12.26 08:26
      인디 최신 버전을 사용해보세요...
    • 델파이최고
      2010.12.26 17:32
      인디 최신은 델파이에서 받을수 있나요? 제가 쓰고 있는것 델7 인데요
    • 이정욱
      2010.12.25 22:07
      1번의 질문은 조금 더 자세한 내용이 필요 합니다.혹시 Drag and Drop 기능을 말씀하신것이라면 TreeView D...
    • 임정현
    • 2010.12.22 01:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 동그랑땡
      2010.12.26 07:57
      퀵리포트에 OnNeedData 이벤트가 있고, 거리에는 MoreData 라는 변수가 있어서 그걸로 사용할 수 있습니다...
    • 정경철
    • 2010.12.21 02:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2010.12.25 22:08
      델파이에 내장된 TeeChart 가 현재 델파이에서는 가장 많이 쓰이고 있습니다.기능이 많은것은 TeeChart Pro...
    • 이정욱
      2010.12.25 22:11
      델파이 2010에서 XE로의 업그레이드는 많은 분들께서 그냥 그렇다고 하십니다.하지만 델파이 7에서 XE로의 ...
    • 아르스
      2010.12.19 22:38
      쿼리를 쓸때 알리아스를 지정해 주셔야 할듯 합니다. Select Sum(Field_Childrncount) as cnt From ta...
    • 이민상
      2010.12.20 02:55
      아르스님 감사
    • 이민상
      2010.12.20 02:58
      혹 FieldByName()이 아닌 ParamByName()은 쿼리에서 변수선언을 아떻게 해야 하나요?
    • 아르스
      2010.12.20 21:13
      FiledByName이랑 ParamByName이랑은 쓰임새가 다릅니다. FieldByName은 일반적으로 해당 테이블의 해...
    • 최용일
      2010.12.18 08:30
      TTimer에 메모리릭이 있었나요? 들어본적이 없는것 같은데요... ThreadTimer에 Enabled필드를 만들고 ...
    • suffering tears
      2010.12.18 08:39
      저도 최용일님말씀처럼 코딩해봤지만, TThreadTimer의 OnTimer에 루프명령을 코딩하고 해봤지만, 잘 안되...