프린터 스풀제어에 관하여 김영대님께서 올리신 글을 찾았습니다.
그런데 에러가 나는군요...T.T
제 생각에 uses절에 뭐가 빠진거 같은데 뭐가 빠졌는지 몰겠네요...
아시는 분 글 좀 남겨 주십시요.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, winspool, Activex, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
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; <--에러 위치(Undeclared Identifire)
hprinter : Thandle;
dwneeded, dwreturned : Dword;
begin
dwneeded := 0;
dwreturned := 0;
msg.Result := 0;
if (OpenPrinter('삼성 MyLaser ML-66H', hprinter, nil) = false) then closeprinter(hprinter);
if (EnumJobs(hprinter, 0, $FFFFFFFF, 1, nil, 0, dwneeded, dwreturned) = false) then
begin
if (GetLastError() <> ERROR_INSUFFICIENT_BUFFER) then closeprinter(hprinter);
end;
GetMem(pjobinfo, dwNeeded);
if (pjobinfo = nil) then closeprinter(hprinter);
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;
end.
WinSpool유닛을 추가해주세요...
^^ 항상 즐코하세요...
광란자 wrote:
> 프린터 스풀제어에 관하여 김영대님께서 올리신 글을 찾았습니다.
> 그런데 에러가 나는군요...T.T
> 제 생각에 uses절에 뭐가 빠진거 같은데 뭐가 빠졌는지 몰겠네요...
> 아시는 분 글 좀 남겨 주십시요.
>
> unit Unit1;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
> ComCtrls, winspool, Activex, StdCtrls;
>
> type
> TForm1 = class(TForm)
> Button1: TButton;
> 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; <--에러 위치(Undeclared Identifire)
> hprinter : Thandle;
> dwneeded, dwreturned : Dword;
>
> begin
> dwneeded := 0;
> dwreturned := 0;
> msg.Result := 0;
>
> if (OpenPrinter('삼성 MyLaser ML-66H', hprinter, nil) = false) then closeprinter(hprinter);
> if (EnumJobs(hprinter, 0, $FFFFFFFF, 1, nil, 0, dwneeded, dwreturned) = false) then
> begin
> if (GetLastError() <> ERROR_INSUFFICIENT_BUFFER) then closeprinter(hprinter);
> end;
>
> GetMem(pjobinfo, dwNeeded);
>
> if (pjobinfo = nil) then closeprinter(hprinter);
>
> 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;
>
> end.