很可能我必须为此写一些过于复杂的东西,而且没有常规方法可以做到这一点,但是:
如何让自己获得所有可用打印机驱动程序的列表,就像添加打印机向导在制造商然后由打印机显示它们时所做的那样?我基本上需要一个自定义添加打印机对话框,没有这个,我有点塞;)
像这样:(忽略箭头,借来的图像)
我还需要列表中驱动程序表示的.inf文件的路径
编辑:一点背景:
我试图通过在TS会话中调用添加打印机向导(带有提升的私有)来添加打印机,将打印机添加到正确的TS端口,然后尝试保存该打印机的信息,以便在登录时添加用户打印机自动根据我保存的值.
到目前为止,我还没有找到一种方法来获取驱动程序信息(最好是该打印机驱动程序的.inf文件的实际路径,因为我可以使用PrintUI来安装打印机).
因此,我使用自定义对话框来匹配打印机驱动程序.由于该工具仅在初始打印机安装时使用,并且仅由管理员使用,因此我不介意在第二次选择驱动程序时使用辅助对话框,以便我可以保存信息.
编辑:针对Windows Server 2008 R2(Win32_PrinterDriver似乎不起作用)
我在这里遇到了一些难题.我一直在尝试加速某个功能,现在当我运行我的应用程序时,运行此功能需要大约16-17秒.
现在,如果我在VS2010中与Performance Analysis一起运行相同的操作,为了找到较慢的部分,代码在~6-7秒内执行.现在,如果我的代码确实快速运行,那么应用程序完全可以接受.
我已经尝试通过调试和发布配置文件运行代码(没有性能分析),几乎没有区别.
任何人都有任何想法可能会发生在这里?
几点注意:有问题的函数使用了相当多的LINQ to SQL,我使用的性能分析是CPU采样.
我有一个服务,它基于System.Threading.Timer每30分钟运行一次作业.定时器像往常一样设置间隔,并异步关闭作业.
昨晚它驻留在服务器上的时间决定将自己重置为与实际时间和日期完全不同的东西.随后,我的工作没有每30分钟运行一次 - 事实上他们完全停止了.
然而,在今天早上重置时间后,下一个30分钟的任务自行运行(30分钟后),然后所有其他任务在同一时间自行运行,好像他们整夜排队一样.
任何人都可以对此有所了解吗?
编辑:作为更新 - 使用其他计时器(System.Timers.Timer)和完全相同的事情发生.时间变为完全不同的东西,服务然后停止完成其任务,直到早上重新设置时间,然后30分钟后它运行所有应该从时间改变后每30分钟运行一次的任务!
我想在我的用户控件的中心显示一个图像,但是我在实际上"找到"控件的中心时画了一个空白!
我觉得这应该是非常简单的事情,但我无法理解它.
理想情况下,我希望最终得到X和Y坐标,可以将其添加到Point的实例中,以便在该点显示.
做了很多搜索这个,到目前为止,我只是设法获得打印机首选项,而不是属性.
我想调用实际的打印机属性窗口,您可以在其中直接从代码设置打印机的安全数据.
我有打印机名称等,只需要能够显示它的属性
非常感激任何的帮助!
到目前为止,我已经尝试了一些不同的实现,最常见的涉及winspool.Drv,它显示了实际的打印机属性窗口(通常是制造商提供的自定义窗口)
例: