Q&A

  • 프린트 스풀러 제어방법! 답이 없어 제가 연구한 결과를 올립니다.
unit Main;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, winspool, Activex;



type

TForm1 = class(TForm)

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

procedure WM_SpoolerStatus(var Msg : TWMSPOOLERSTATUS);

message WM_SPOOLERSTATUS;

public

{ Public declarations }

end;





var

Form1: TForm1;



implementation



{$R *.DFM}



procedure TForm1.WM_SpoolerStatus(var Msg : TWMSPOOLERSTATUS);

var

i : integer;

pjobinfo : ^JOB_INFO_1;

hprinter : Thandle;

dwneeded, dwreturned : Dword;



begin

dwneeded := 0;

dwreturned := 0;

msg.Result := 0;



if (OpenPrinter('프린터 이름', hprinter, nil) = false) then;

if (EnumJobs(hprinter, 0, $FFFFFFFF, 1, nil, 0, dwneeded,

dwreturned) = false) then

begin

if (GetLastError() <> ERROR_INSUFFICIENT_BUFFER) then

begin

closeprinter(hprinter);

end;

end;



GetMem(pjobinfo, dwNeeded);



if (pjobinfo = nil) then

begin

closeprinter(hprinter);

end;



if (EnumJobs(hprinter, 0, $FFFFFFFF, 1, pjobinfo, dwneeded,

dwneeded, dwreturned) = false) then

begin

closeprinter(hprinter);

FreeMem(pjobinfo);

end;



if msg.jobsleft > 1 then

setjob(hprinter,pjobinfo^.jobid,1,pjobinfo,1);



end;



*참고....



setjob(hprinter,pjobinfo^.jobid,1,pjobinfo,1); - 프린트 일시정지



setjob(hprinter,pjobinfo^.jobid,1,pjobinfo,2); - 계속



setjob(hprinter,pjobinfo^.jobid,1,pjobinfo,3); - 취소



setjob(hprinter,pjobinfo^.jobid,1,pjobinfo,4); - 재시작



setjob(hprinter,pjobinfo^.jobid,1,pjobinfo,5); - 삭제....



프린트 스풀러를 맘대로 제어할 수 있답니다....



제가 짠 프로그램을 다 올리려다가 이부분만 남기다 보니 이대로 하면 문제가 있을겁니다... 하지만 응용하시면 많이 활용할 수 있을겁니다...

그리구 궁금한점 있으시면 게시판에 다시 올려 주세여....

그럼 수고하세여...





2  COMMENTS
  • Profile
    김영대 1999.08.10 20:58
    좋은 소스를 공개해 주셔서 감사합니다

    하시는일 잘 되시길 바랍니다





  • Profile
    발도제 1999.08.10 21:50
    김영대 께서 말씀하시기를...

    > 좋은 소스를 공개해 주셔서 감사합니다

    > 하시는일 잘 되시길 바랍니다

    >

    >



    저두 델파이를 정말 사랑하는 사람중의 한사람입니다...

    제가 이 홈페이지에서 델파이에 관한 지식을 많이 쌓게 되었습니다.

    이제 저두 도움을 받은만큼 여러 사람들에게 좋은 자료 많이 올리도록 노력 하겠습니다. 그리구 계속 이 홈페이지가 번창하길 빕니다....

    그럼... 수고하세여....



    • 안치봉
      1999.08.10 19:56
      for i := 0 to ControlCount - 1 do begin if Controls[i] is TLabel then TLabel(Controls[i]).V...
    • 발도제
    • 1999.08.10 19:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.08.10 20:58
      좋은 소스를 공개해 주셔서 감사합니다 하시는일 잘 되시길 바랍니다
    • 발도제
      1999.08.10 21:50
      김영대 께서 말씀하시기를... > 좋은 소스를 공개해 주셔서 감사합니다 > 하시는일 잘 되시길 바랍니다 ...
    • 오세웅
    • 1999.08.10 19:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.08.10 22:40
      오세웅 께서 말씀하시기를... > 안녕하세요 > 타이틀바 없는 폼의 이동에 대해서는 이곳에서 찾을 > 수 ...
    • 이현철
    • 1999.08.10 18:04
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 고구마
      1999.08.10 19:22
      이현철 께서 말씀하시기를... > 안녕하세요. > 메모의 내용을 스트링 배열에다 저장한후 나중에 다시 불...
    • 이현철
      1999.08.10 20:29
      네. 답변 감사합니다. 전 메모에 있는 내용을 스트링 배열에 저장하고. 그걸 DB에 저장했거든요. 나중에 ...
    • 고구마
      1999.08.10 23:42
      이현철 께서 말씀하시기를... > 네. 답변 감사합니다. > 전 메모에 있는 내용을 스트링 배열에 저장하고....
    • 구창민
      1999.08.10 22:15
      이현철 께서 말씀하시기를... > 네. 답변 감사합니다. > 전 메모에 있는 내용을 스트링 배열에 저장하고....
    • 박대석
    • 1999.08.10 17:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.08.10 21:03
      박대석 께서 말씀하시기를... > cad file을 델파이에서 display할 수 있는 방법이 없는지요 아래 사이...
    • 제임스딘
      1999.08.10 19:01
      임명숙 께서 말씀하시기를... > Query로 table을 핸들링해보고자 하는 초짭니다. > Query로 입력을 해보...
    • 이지만
    • 1999.08.10 07:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김종호
      1999.08.12 04:26
      이지만 께서 말씀하시기를... > Delphi 에서 ListBOX 에 시스템에 탑재된 미디어(Floopy, HARD, CDROM.......
    • 김정완
      1999.08.10 11:52
      이지만 께서 말씀하시기를... > Delphi 에서 ListBOX 에 시스템에 탑재된 미디어(Floopy, HARD, CDROM.......
    • 이광주
    • 1999.08.10 06:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.08.10 21:02
      이광주 께서 말씀하시기를... > tracert에서 나오는 데이터값들을 델에서 사용하고 싶습니다. > 데이터 ...
    • 김영대
      1999.08.10 20:52
      귀염뎅이 께서 말씀하시기를... > 안녕하세요. > 델파이 초보입니다. > 애플리케이션 실행간에 object( ...
    • 김영대
      1999.08.10 20:56
      안갑철 께서 말씀하시기를... > 델파이 프로그램에서 사용자ID와 비밀번호를 입력받은후 > 해당 입력값을...
    • sunhee
      1999.08.10 03:53
      처음 프로그램 돌아갈 때 winexe("a.exe a1 a2", SW_SHOWNORMAL)이런 식으로 적어주시면 됩니다. 그...
    • 김여정
    • 1999.08.10 03:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조복기
      1999.08.10 08:11
      안녕하세요..조복기입니다.. 제가 이해가 잘 안가긴 하지만요 조건도 유동적이고 결과필드들도 유동...
    • 이용일
    • 1999.08.10 03:07
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 문보석
      1999.08.10 19:31
      이용일 께서 말씀하시기를... > 또 질문이군요..^^; > 캡션바없는 폼이 있는데요. > 이 폼 안에 Memo컴...
    • 이용일
      1999.08.11 03:03
      문보석 께서 말씀하시기를... > 저는 씨빌더 사용자라 파스칼프로그램은 잘 모르겠구요...물론 거의 비슷...
    • 안치봉
      1999.08.10 03:20
      글쎄요. 두가지중에 하나는 포기를 하시죠.. 아니면 3번을 택하시던지 (자세한건 나이렉스의 팁란에서 캡...
    • 이용일
    • 1999.08.10 02:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • sunhee
      1999.08.10 03:37
      메뉴중에서요 팁모아쪽에 김영대님쪽것을 찾아보면 있습니다. 파일 찾기 검색하면 될거 같네요. 이용일...
    • 박면구
    • 1999.08.10 02:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김정완
      1999.08.10 10:50
      박면구 께서 말씀하시기를... > TComboBox를 상속받아서 > TComDouble 이라는 콤포넌트를 만드려고 합니...