Ash*_*osh 6 vb.net .net-4.0 windows-server-2008-r2 spooler
我正在更新我们的"打印机监控"应用程序.以前,此应用程序在Windows 2000服务器上成功运行.现在我们转移到Windows 7服务器.在Windows 7上,我们的"打印监视器"应用程序崩溃了.当我调试它时,我发现我们的SetJob函数抛出以下异常:
参数不正确.
有人对这个有了解吗?
功能调用:
SetJob(
mhPrinter,
midJob,
0,
IntPtr.Zero,
PrintJobControlCommands.JOB_CONTROL_PAUSE) 'Here exception is thrown
Run Code Online (Sandbox Code Playgroud)
我们使用的后台处理程序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
Run Code Online (Sandbox Code Playgroud)
请在这里有一个循环,说明如何构建函数以及如何调用参数计:
http://www.pinvoke.net/default.aspx/winspool.setjob
它与您实现的有点不同。希望它会有所帮助。