C# 使用WIN32API来获取打印机

  主要使用到winspool.drv中的EnumPrinters函数,代码如下:

  [DllImport("winspool.drv", SetLastError = true, CharSet = CharSet.Auto)]

  [return: MarshalAs(UnmanagedType.Bool)]

  private static extern bool EnumPrinters ([MarshalAs(UnmanagedType.U4)] PRINTER_ENUM flags,

  [MarshalAs(UnmanagedType.LPStr)] string sName,

  uint iLevel,

  IntPtr pPrinterDesc,

  uint iSize,

  [MarshalAs(UnmanagedType.U4)] ref uint iNeeded,

  [MarshalAs(UnmanagedType.U4)] ref uint iReturned

  );   

  说明:Marshal属性提供了对托管代码与非托管代码见数据封送。  

  EnumPrinters 的 WIN32 API的定义如下:   

  BOOL EnumPrinters(

  DWORD Flags, // printer object types

  LPTSTR Name, // name of printer object

  DWORD Level, // information level

  LPBYTE pPrinterEnum, // printer information buffer

  DWORD cbBuf, // size of printer information buffer

  LPDWORD pcbNeeded, // bytes received or required

  LPDWORD pcReturned // number of printers enumerated

  );

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值