如何取消打印任務

肥仔胧 2009-12-11 03:14:37
參照MSNDN,一下兩種方法都失敗

方法一:

procedure TForm1.Button1Click(Sender: TObject);
var
phPrinter: Cardinal;
BuffSize: Integer;
PtrPrtrInfo2: PPrinterInfo2;
iErr: Integer;
begin
OpenPrinter('PDFCreator', phPrinter, nil);
//ShowMessage(IntToStr(phPrinter));
//GetPrinter(phPrinter, 2, nil, 0, @BuffSize );
WinSpool.SetPrinter(phPrinter, 0, nil, PRINTER_CONTROL_PURGE);
iErr := GetLastError;
ShowMessage(IntToStr(iErr));
end;

方法二:

function AbortProc(h:HDC;iError:integer): Bool;stdcall;
begin
result:=false;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
phPrinter: Cardinal;
iErr: Integer;
dc: HWND;
begin
OpenPrinter('PDFCreator', phPrinter, nil);
dc := GetDC(phPrinter);
iErr := SetAbortProc(phPrinter, AbortProc);
//ShowMessage(IntToStr(iErr));
iErr := GetLastError;
ShowMessage(IntToStr(iErr));
end;


請問高手,是什麽原因
...全文
1413 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
肥仔胧 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hnlg81004 的回复:]
sc stop Spooler
PAUSE
sc config pooler start=auto
sc start Spooler
保存成.bat,然后运行不知道可不可以。网上看到的,呵呵
[/Quote]
我把文件拖入PDFCreator列表中,馬上處於打印,然後立即運行bat文件,還是繼續打印
肥仔胧 2009-12-13
  • 打赏
  • 举报
回复
up
CCC的 2009-12-13
  • 打赏
  • 举报
回复
sc stop Spooler
PAUSE
sc config pooler start=auto
sc start Spooler
保存成.bat,然后运行不知道可不可以。网上看到的,呵呵
gyk120 2009-12-13
  • 打赏
  • 举报
回复
打印的文件是pdf?
肥仔胧 2009-12-11
  • 打赏
  • 举报
回复
up
hjkto 2009-12-11
  • 打赏
  • 举报
回复
帮顶

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧