怎么截获WM_SPOOLERSTATUS消息?(100分)

  • 主题发起人 主题发起人 bugcool
  • 开始时间 开始时间
B

bugcool

Unregistered / Unconfirmed
GUEST, unregistred user!
1、是不是不论从网络还是本地来的打印请求都会<br>触发这个消息?<br>2、用什么类型的钩子,怎么样才能截获到这个消息?<br><br>我试用了各种类型的钩子(hook)都没能截获<br>到这个消息。我希望能截获这个消息,做一个<br>打印机任务记录软件。还请高手赐教:)<br>
 
WM_SPOOLERSTATUS消息是当有任务添加或移出打印机管理器队列时由<br>打印机管理器发向窗口的WindowProc函数的。<br>参数含义:<br>wParam :表示PR_JOBSTATUS标志。<br>lParam :低字表示打印机管理器队列中保留的任务数量、<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;高字没用到。<br><br>在win2000和winXP中,WM_SPOOLERSTATUS消息不会被发出,通报打印机管理器队列<br>状态可以使用FindFirstPrinterChangeNotification和FindNextPrinterChangeNotification<br>函数。<br><br>示例:<br>HANDLE chgObject;<br>DWORD *pdwChange;<br>BOOL fcnreturn;<br><br>chgObject = FindFirstPrinterChangeNotification( hPrinter, PRINTER_CHANGE_JOB, 0, NULL);<br>WaitForSingleObject(chgObject, INFINTE);<br>fcnreturn = FindNextPrinterChangeNotification(chgObject, pdwChange, NULL, NULL);<br>if (fcnreturn) {<br>&nbsp; &nbsp; &nbsp;// check value of *pdwChange and deal with the indicated change<br>&nbsp;<br><br>
 
接受答案了.
 
后退
顶部