1、findfirstprinterchangenotification 示例在Windows操作系统中,FindFirstPrinterChangeNotification是一个 API 函数,用于监视打印机的状态更改。当打印机状态发生更改时(例如,打印机被添加、删除或配置更改),该函数会返回一个事件通知。以下是一个简单的示例,演示如何使用FindFirstPrinterChangeNotification:cpp复制代码#include #include DWORD CALLBACK PrinterChangeNotificationProc( DWORD dwFlags, DWORD dwE
2、vent, LPVOID lpEventData, LPVOID lpArg ) UNREFERENCED_PARAMETER(dwFlags); UNREFERENCED_PARAMETER(dwEvent); UNREFERENCED_PARAMETER(lpEventData); if (dwFlags & PRINTER_CHANGE_ADD) printf(Printer addedn); else if (dwFlags & PRINTER_CHANGE_DELETE) printf(Printer deletedn); else if (dwFlags & PRINTER_CHA
3、NGE_SET_PRINTER) printf(Printer settings changedn); else printf(Unknown printer changen); return 0; int main() HANDLE hPrinterChangeNotify = NULL; DWORD result = 0; DWORD bytesReturned = 0; DWORD flags = PRINTER_CHANGE_ADD | PRINTER_CHANGE_DELETE | PRINTER_CHANGE_SET_PRINTER; BOOL success = FindFirs
4、tPrinterChangeNotification(NULL, flags, 0, &hPrinterChangeNotify); if (success) SetPrinterChangeNotificationProc(hPrinterChangeNotify, PrinterChangeNotificationProc, NULL); while (FindNextPrinterChangeNotification(hPrinterChangeNotify, &result, &bytesReturned, NULL, NULL) if (result = ERROR_INVALID_
5、FUNCTION) break; / End of notifications. else if (result = ERROR_SUCCESS) / Continue processing notifications. else printf(Error: %dn, result); break; / An error occurred. Exit the loop. FindClosePrinterChangeNotification(hPrinterChangeNotify); else printf(Failed to start printer change notificationsn); return 0; 注意:为了使该示例正常工作,您需要链接到printui.lib库,并确保在编译时包括正确的头文件。此外,此代码需要在管理员权限下运行,因为监视打印机更改通常需要高级权限。