我想通过使用WindowsSpoolerAPI的独立程序监视系统范围的打印作业,但只能获取打印作业的名称。如何获取具有完整路径的原始文件。 最佳答案 如果您正在寻找原始文档路径(例如您刚刚打印的Word文档的位置),假脱机程序将无法告诉您这一点。假脱机程序通常通过GDI或XPS路径接收文件。有效执行打印的应用程序向假脱机程序发送一系列图形命令(通过适当的设备驱动程序),假脱机程序服务将在发送到打印机之前缓存到一个临时文件中。这意味着假脱机程序本身对原始源文件或其所在位置一无所知。如果您想知道假脱机程序如何获取文档名称,它是通过Sta
我使用C++程序中的CreateProcess启动“netstopspooler”。它失败,退出代码为259。有人知道那个错误代码是什么意思吗?此外,如果有人可以给我一个链接,指向一些关于此命令可能的错误代码及其含义的文档,我将不胜感激。 最佳答案 259不是错误,而是它的STILL_ACTIVE如果您传递给它的进程句柄与尚未终止的进程相关(因此没有退出代码),则GetExitCodeProcess返回).如果您想在获取退出代码之前等待它退出,请在进程句柄上调用WaitForSingleObject()。
上下文我使用后台处理程序事件API来捕获用户打印文档时后台处理程序生成的事件,即。FindFirstPrinterChangeNotificationFindNextPrinterChangeNotification问题当我从我的机器在网络打印机上打印文档时,监视器没有捕获任何事件(使用上述功能)通知本地打印机的事件生成正常,只有网络打印机有问题! 最佳答案 Fromthedocumentation:Note:InWindowsXPwithServicePack2(SP2)andlater,theInternetConnection
在此MSDNAPIArticle,它说:Abitflag.IfyousetthePRINTER_NOTIFY_OPTIONS_REFRESHflaginacalltotheFindNextPrinterChangeNotificationfunction,thefunctionprovidescurrentdataforallmonitoredprinterinformationfields.TheFindFirstPrinterChangeNotificationfunctionignorestheFlagsmember.但是,我无法在API的任何地方找到告诉标志PRINTER_NO
使用WindowsPrintSpoolerAPI,我们可以打印出XPS文件。问题是打印后台处理程序忽略默认打印机设置。(我们已放弃尝试applyprintersettings。默认打印机设置就足够了。)例如...无论控制面板中的设置如何,打印输出始终是彩色的并且每页一张纸:黑白/彩色、双面/非双面、每张多页/每张单页。MSWord和Adobe等其他应用程序遵循默认打印机设置。我们使用的是DelphiXE2和Windows764位。此测试代码是自包含的,因此您可以将其粘贴进去进行测试...使用打印机名称填充组合框:usesPrintersComboBox1.Items.Assign(
您是否曾经遇到过尝试打印某些东西却什么也没有发生的情况?您等待它打印,但作业没有完成?打印作业可能无法执行的原因有很多实际打印,但常见的原因之一是打印机队列有一个卡住的打印作业。您可能需要清除卡住的打印作业的打印队列。Printspooler服务是向打印机提供打印命令的服务。它管理多个打印命令,并在最后一次打印完成时逐个打印。打印机后台处理程序服务与两个系统文件spoolss.dll/spoolsv.exe和一项服务一起使用。用户想要打印出来,但他们收到错误消息“打印后台处理程序服务已停止,请重新启动服务,本地打印后台处理程序未运行。请重新启动后台处理程序”手动清除和重置打印后台处理程序1.使
办公室一台电脑的共享打印机突然无法打印,提示打印服务已停止,打开服务发现printspooler服务已经停止,同时打印机列表中打印机记录也全部消失。右键启动服务,打印机列表出现,但是刷新后发现printspooler服务又已经停止。根据网上的解决方法,有人认为是打印服务的注册表被第三方软件干扰,更改了注册表的键值,导致打印服务被停止。解决方法如下: 开始->运行,输入regedit打开注册表编辑器 找到以下键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler 选定Spooler这个文件夹,在右边窗口里找DependOn
漏洞概述MicrosoftWindowsPrintSpooler服务未能限制对RpcAddPrinterDriverEx()函数的访问,该函数可能允许远程身份验证的攻击者以系统权限在易受攻击的系统上执行任意代码。该RpcAddPrinterDriverEx()函数用于在系统上安装打印机驱动程序。此函数的参数之一是DRIVER_CONTAINER对象,它包含有关添加的打印机将使用哪个驱动程序的信息。另一个参数,dwFileCopyFlags指定如何复制替换打印机驱动程序文件。攻击者可以利用任何经过身份验证的用户都可以调用RpcAddPrinterDriverEx()并指定位于远程服务器上的驱动程
我需要编写一个小型控制台应用程序(补丁)来关闭打印后台处理程序服务,做一些事情,然后启动打印后台处理程序服务。我想用C#写这个。有人能指出我正确的方向吗?提前致谢! 最佳答案 您可能可以使用ServiceController类来做到这一点:ServiceControllercontroller=newServiceController("Spooler");controller.Stop();...controller.Start(); 关于c#-如何在C#中以编程方式关闭Windows