如何打开打印机属性对话框

wzg3k 2012-03-14 04:42:43
采用下面的代码可以打开打印机属性对话框,但是用户在该对话框中进行了设定后,新的设定值并没有保存到系统中。如何才能保存用户的设定阿?
string printerName = _document.PrinterSettings.PrinterName;

if (printerName != null && printerName.Length > 0)
{
IntPtr pPrinter = IntPtr.Zero;
IntPtr pDevModeOutput = IntPtr.Zero;
IntPtr pDevModeInput = IntPtr.Zero;
IntPtr nullPointer = IntPtr.Zero;

OpenPrinter(printerName, ref pPrinter, ref nullPointer);

int iNeeded = DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, 0);
pDevModeOutput = System.Runtime.InteropServices.Marshal.AllocHGlobal(iNeeded);
DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, 4);

ClosePrinter(pPrinter);
}
...全文
279 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzg3k 2012-03-15
  • 打赏
  • 举报
回复
期待答案
wzg3k 2012-03-15
  • 打赏
  • 举报
回复
期待答案
wzg3k 2012-03-15
  • 打赏
  • 举报
回复
期待答案
nonocast 2012-03-14
  • 打赏
  • 举报
回复

var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
var printers = query.Get();
foreach (var each in printers) { Console.WriteLine(each["name"]); }

if (xpsprinter != null) {
xpsprinter.InvokeMethod("SetDefaultPrinter", new object[] { xpsprinter["name"].ToString() });
}

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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