检测打印机
来源:互联网 发布:sql应用开发参考手册 编辑:程序博客网 时间:2024/06/10 06:20
//是大富翁上看到的,觉得有用
//设计: Linc 2004.04.29
//功能: 判断打印机是否就绪
//参数:允许是网络打印机
function IsPrinterReady: Boolean;
var
hDeviceMode, hGlobal, hPrinter: THandle;
dwNeeded: DWord;
pDefs: TPrinterDefaults;
pInfo: PPrinterInfo2;
bFlag: Boolean;
cDevice,
cDriver,
cPort: array[0..255] of char;
begin
Result := False;
if Printer = nil then Exit;
if Printer.PrinterIndex = -1 then Exit;
hGlobal := 0;
try
Printer.GetPrinter(cDevice, cDriver, cPort, hDeviceMode);
if hDeviceMode = 0 then Exit;
FillChar(pDefs, SizeOf(TPrinterDefaults), 0);
pDefs.DesiredAccess := {STANDARD_RIGHTS_REQUIRED or} PRINTER_ACCESS_USE;
bFlag := OpenPrinter(cDevice, hPrinter, @pDefs);
dwNeeded := GetLastError;
if not bFlag or (hPrinter = INVALID_HANDLE_VALUE) then Exit;
FillChar(pInfo, SizeOf(pInfo), #0);
WinSpool.GetPrinter(hPrinter, 2, nil, 0, @dwNeeded);
if dwNeeded = 0 then Exit;
hGlobal := GlobalAlloc(GHND, dwNeeded);
if hGlobal = 0 then Exit;
pInfo := PPrinterInfo2(GlobalLock(hGlobal));
if pInfo = nil then Exit;
bFlag := WinSpool.GetPrinter(hPrinter, 2, pInfo, dwNeeded, @dwNeeded);
if bFlag then
Result := pInfo.Status = 0
else Result := False;
finally
if pInfo <> nil then GlobalUnlock(hGlobal);
if hGlobal <> 0 then GlobalFree(hGlobal);
if hPrinter <> 0 then ClosePrinter(hPrinter);
end;
end;
- 检测打印机
- 检测局域网所有打印机
- 检测打印机是否连接好!
- 检测打印机状态(VB实现)
- C# 检测 是否 安装打印机
- 检测打印机并于指定打印机上打印
- vb.net中如何检测打印机
- 打印机端口检测(minotr port)安装
- 打印机
- 打印机
- 打印机
- 打印机
- 打印机
- 打印机
- 用C#检测你的打印机是否连接
- 打印机 针式打印机 热敏打印机
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第21章 系统设置工具(网络与打印机)与硬件检测
- 虚拟打印机
- ibm上的ClassLoader的教程
- 人心一涣散,什么都免谈
- 第一次使用jdbc连接postgre数据库碰到的问题及解决方法
- Microsoft .NET Compact Framework 开发常见问题解答
- RMS 配置经验总结
- 检测打印机
- 有趣的google地图搜索
- 启功墓志铭
- XCodeFactory1.0 正式发布!!!
- 在 Windows 应用程序中使用 Windows XP 的外观风格和 PrintWindow
- Win32 多线程的性能
- Java之路(1)----帮你完成HelloWorld (摘录)
- 在Win32中管理虚拟内存
- VIM 使用简介(转载)