purgar cola de impresion
Publicado por juagado (1 intervención) el 06/10/2001 12:25:52
Alguien sabe como puedo hacer que mi programa purge la cola de impresion???
Valora esta pregunta


0
#include <windows.h>
#include <iostream>
void purgarColaImpresion(const char* nombreImpresora) {
HANDLE hPrinter;
DWORD dwBytesNeeded;
DWORD dwReturned;
PRINTER_INFO_2* pPrinterInfo = NULL;
BYTE* pDocInfo = NULL;
// Abre la impresora
if (!OpenPrinter((LPSTR)nombreImpresora, &hPrinter, NULL)) {
std::cerr << "No se pudo abrir la impresora." << std::endl;
return;
}
// Obtiene información de la impresora
GetPrinter(hPrinter, 2, NULL, 0, &dwBytesNeeded);
pPrinterInfo = (PRINTER_INFO_2*)malloc(dwBytesNeeded);
if (!GetPrinter(hPrinter, 2, (LPBYTE)pPrinterInfo, dwBytesNeeded, &dwBytesNeeded)) {
std::cerr << "No se pudo obtener información de la impresora." << std::endl;
ClosePrinter(hPrinter);
free(pPrinterInfo);
return;
}
// Purgar la cola de impresión
if (pPrinterInfo->cJobs > 0) {
for (DWORD i = 0; i < pPrinterInfo->cJobs; i++) {
// Eliminar cada trabajo de impresión
if (pDocInfo) {
DeletePrinterConnection(pDocInfo);
}
}
}
// Cierra la impresora
ClosePrinter(hPrinter);
free(pPrinterInfo);
std::cout << "Cola de impresión purgada." << std::endl;
}
int main() {
const char* nombreImpresora = "NombreDeTuImpresora"; // Cambia esto al nombre de tu impresora
purgarColaImpresion(nombreImpresora);
return 0;
}