如何判断打印机-------------打印的颜色是彩色还是黑白? 这东西给客户个combobox选择吧。API没有 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ses Printers, WinSpool; procedure TForm1.Button1Click(Sender: TObject); var Dev, Drv, Prt: array[0..255] of Char; DM1: PDeviceMode; DM2: PDeviceMode; Sz: Integer; DevM: THandle; begin Printer.PrinterIndex := -1; Printer.GetPrinter(Dev, Drv, Prt, DevM); DM1 := nil; DM2 := nil; Sz := DocumentProperties(0, 0, Dev, DM1^, DM2^, 0); GetMem(DM1, Sz); DocumentProperties(0, 0, Dev, DM1^, DM2^, DM_OUT_BUFFER); if DM1^.dmColor > 1 then label1.Caption := Dev + ': 彩色' else label1.Caption := Dev + ': 黑白'; if DM1^.dmFields and DM_Color <> 0 then Label2.Caption := '支持彩色打印' else Label2.Caption := '不支持彩色打印'; FreeMem(DM1); end; Function PrinterSupportsColor: Boolean;Var Device, Driver, Port: Array [0..255] of Char; hDevMode: THandle;Begin Printer.GetPrinter(Device, Driver, Port, hDevmode); Result := WinSpool.DeviceCapabilities( Device, Port, DC_COLORDEVICE, Nil, Nil ) <> 0;End;试验了一下,似乎判断的打印机都是彩色的。查阅相关资料,跟打印机的Grayscale功能(灰度设置)有关,因为颜色值相对黑白来说更多。 如何快速导入其它主机的记录。 Delphi函数指针的使用 什么情况下会出现异常:'can't change visible in OnShow and Onhide 简单问题:“聪明的程序员用Delphi”、“优秀的程序员用C++”的出处? 如何是的自己的程序变为活动窗口。 如何使我的机器提供FTP服务,编程解决. delphi客户端下使用数据感知组件进行插入、更新的问题 DELPHI怎么实现读取SQL数据库的实时数据据呢? mdias问题 现在开始学delphi,看什么书比较好 纯属冒泡贴散分 这里的东东真是多啊!!!!
ses
Printers, WinSpool; procedure TForm1.Button1Click(Sender: TObject);
var
Dev, Drv, Prt: array[0..255] of Char;
DM1: PDeviceMode;
DM2: PDeviceMode;
Sz: Integer;
DevM: THandle;
begin
Printer.PrinterIndex := -1;
Printer.GetPrinter(Dev, Drv, Prt, DevM);
DM1 := nil;
DM2 := nil;
Sz := DocumentProperties(0, 0, Dev, DM1^, DM2^, 0);
GetMem(DM1, Sz);
DocumentProperties(0, 0, Dev, DM1^, DM2^, DM_OUT_BUFFER);
if DM1^.dmColor > 1 then
label1.Caption := Dev + ': 彩色'
else
label1.Caption := Dev + ': 黑白';
if DM1^.dmFields and DM_Color <> 0 then
Label2.Caption := '支持彩色打印'
else
Label2.Caption := '不支持彩色打印';
FreeMem(DM1);
end;
Function PrinterSupportsColor: Boolean;
Var
Device, Driver, Port: Array [0..255] of Char;
hDevMode: THandle;
Begin
Printer.GetPrinter(Device, Driver, Port, hDevmode);
Result :=
WinSpool.DeviceCapabilities( Device, Port, DC_COLORDEVICE, Nil, Nil ) <>
0;
End;试验了一下,似乎判断的打印机都是彩色的。查阅相关资料,跟打印机的Grayscale功能(灰度设置)有关,因为颜色值相对黑白来说更多。