Курсовая работа: Информационная система сравнительного анализа работы компьютера
char strpPrinterName [100], strpPortName [100], strpDriverName [100], strpPrintProcessor [100];
printinfo. pPrinterName = strpPrinterName;
printinfo. pPortName = strpPortName;
printinfo. pDriverName = strpDriverName;
printinfo. pPrintProcessor = strpPrintProcessor;
PRINTER_INFO_2 *Pr;
DWORD byteNeed = 0,prCount=0; // Кол-во необходимых байт, количество принтеров
// Делаем первый вызов с буфером NULL, чтоб узнать нужный размер буфера
системная информация компьютер программа
EnumPrinters (PRINTER_ENUM_CONNECTIONS|PRINTER_ENUM_LOCAL,NULL,2,NULL,0,&byteNeed,&prCount);
// Создаембуфер
Pr = new PRINTER_INFO_2 [byteNeed];
// Делаем второй вызов уже с нужным буфером
if (EnumPrinters (PRINTER_ENUM_CONNECTIONS|PRINTER_ENUM_LOCAL,NULL,2, (LPBYTE) Pr,byteNeed,&byteNeed,&prCount))
{
for (int i = 0; i < prCount; ++i)
{
strcat (lpszSystemInfo, "Установленные принтеры: \t");
strcat (lpszSystemInfo, Pr [i]. pPrinterName);
strcat (lpszSystemInfo, " ");
int n_long = strlen (lpszSystemInfo);
lpszSystemInfo [n_long-2] = 13;
lpszSystemInfo [n_long-1] = 10;
strcat (lpszSystemInfo, "Порт принтера: \t\t");
strcat (lpszSystemInfo, Pr [i]. pPortName);
strcat (lpszSystemInfo, " ");
n_long = strlen (lpszSystemInfo);
lpszSystemInfo [n_long-2] = 13;
lpszSystemInfo [n_long-1] = 10;