Windows打印机后台处理程序setjob功能不适用于Windows-7?

问题描述

| 我正在更新我们的“打印机监控”应用程序。以前,此应用程序可在Windows 2000服务器上成功运行。现在我们转移到Windows 7服务器。在Windows 7上,我们的“打印监视器”应用程序崩溃。当我调试它时,我发现我们的
SetJob
函数抛出以下异常:   参数错误。 有人对这个有了解吗? 函数调用
SetJob(
    mhPrinter,midJob,IntPtr.Zero,PrintJobControlCommands.JOB_CONTROL_PAUSE) \'Here exception is thrown
我们使用的后台打印程序API:
<DllImport(\"winspool.drv\",EntryPoint:=\"SetJob\",_

SetLastError:=True,CharSet:=CharSet.Ansi,_

ExactSpelling:=False,_

CallingConvention:=CallingConvention.StdCall)> _

Public Function SetJob _

(<InAttribute()> ByVal hPrinter As IntPtr,_

<InAttribute()> ByVal dwJobId As Int32,_

<InAttribute()> ByVal Level As Int32,_

<InAttribute()> ByVal lpJob As IntPtr,_

<InAttribute(),MarshalAs(UnmanagedType.U4)> ByVal dwCommand As PrintJobControlCommands _

) As Boolean
    

解决方法

        请在这里循环,如何构建函数以及如何调用参数表: http://www.pinvoke.net/default.aspx/winspool.setjob 与您实施它有所不同。希望它会有所帮助。