除非以管理员身份运行,否则不会打印PrintVisual

时间:2019-01-29 06:20:52

标签: c# wpf visual-studio-2015

我目前有一个WPF C#应用程序,该应用程序基本上会加载XAML窗口控件,其中的填充信息,然后调用PrintVisual();

在Windows 10上,此操作对于标准用户正常运行(受限权限)。但是,在Windows 7上,除非将应用程序提升为以管理员身份运行,否则PrintVisual会挂起并且不会打印。

所有Windows 7机器已更新为最新版本。

这是我的问题;为什么PrintVisual需要管理员特权才能打印?在Windows 7上运行时是否需要使用其他技术?

(关于Graphic.CopyFromScreen方法,以绕过管理权限...)

下面是问题所在的代码段。

BinLocation bl = new BinLocation();   // A Windows control object
PrintDialog dlg = new PrintDialog();  // API from System.Windows.Controls
LocalPrintServer prtSrv = new LocalPrintServer();  // API from System.Printing
PrintQueue pq = prtSrv.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local }).Where(w => w.Name.Contains("QL-500") && !w.IsOffline).FirstOrDefault();
if (pq != null) dlg.PrintQueue = pq;
bl.Show();
// Problem here with Win7 Standard user, code hangs and refuse to raise exception. using System.Windows.Media.Visual
dlg.PrintVisual(bl, "");
bl.Close();

我目前在Win7 x64计算机上的VS2015中使用WPF C#项目。

0 个答案:

没有答案