Anzahl Druckjobs in Warteschlange
-
Hallo zusammen
Ich versuche gerade die Anzahl der Druckjobs in der Druckerwarteschlange auszulesen.
Der untere Code funktioniert unter W2k, allerdings unter XP kommt immer 0 als Jobcount zurück.
Als Compiler verwende ich den BCB 6.0.Sieht hier irgendjemand einen Fehler?
AnsiString sPrinterName = "\\\\fe16712\\AtePdf"; int *iJobs; int Jobs; iJobs = &Jobs; DWORD cByteNeeded, cByteUsed; PRINTER_INFO_2 *pPrinterInfo; HANDLE hPrinter; DWORD dwError; //open printer if(!OpenPrinter(sPrinterName.c_str(), &hPrinter, NULL)) { // Log(sPrinterName, "Error OpenPrinter():"); // return false; } /* Get the buffer size needed. */ if(!GetPrinter(hPrinter, 2, NULL, 0, &cByteNeeded)) { dwError = GetLastError(); // DbgLog(int(cByteNeeded), "Error GetPrinter() Size:"); if(dwError != ERROR_INSUFFICIENT_BUFFER) { // Log(GetSystemErrorMessage(dwError), "Error GetPrinter():"); ClosePrinter(hPrinter); // return false; } } //allocate memory for the PRINTER_INFO_" struct pPrinterInfo = (PRINTER_INFO_2 *)malloc(cByteNeeded); ZeroMemory(pPrinterInfo, cByteNeeded); if(!(pPrinterInfo)) { /* Failure to allocate memory. */ // Log(ERROR_AT + " can not allocate memory:"); ClosePrinter(hPrinter); // return false; } /* Get the printer information. */ if(!GetPrinter(hPrinter, 2, (LPSTR)pPrinterInfo, cByteNeeded, &cByteUsed)) { // Log(int(hPrinter), "Error GetPrinter() Info:"); /* Failure to access the printer. */ free(pPrinterInfo); // pPrinterInfo = NULL; ClosePrinter(hPrinter); // return false; } *iJobs = pPrinterInfo->cJobs; ClosePrinter(hPrinter); free(pPrinterInfo); // return true; Button1->Caption = *iJobs;Vielen Dank im voraus.
-
Hallo zusammen
Ich muß das oben stehende Thema nochmals aufbringen, sorry.
Leide rbin ich hier nicht wirklich erfolgreich gewesen. Was ich noch festgestellt habe ist, daß auf unterschiedlichen XP Rechnern der Jobcount verschiede sein kann, sich jedoch nie ändert.
Irgenwelche Ideen?MfG Stephan
-
Hallo zusammen
Sorry für das Doppelpost, jedoch irgendwie hing mein Browser.
MfG Stephan
-
Button1->Caption = *iJobs;...musst Du den int nicht erst in nen String umwandeln?
-
Halo zusammen
Jein, um es ganz sauber zu machen wäre ein Cast sinnvoll. Allerdings gibt es hier keine Probleme.
Außerdem ist dies nur mein "Testcode".MfG Stephan