Прочитать на английском

Поделиться через


Управление принтерами

API оболочки предоставляет функции, которые можно использовать для управления сетевыми принтерами. Если с файлом связана команда печати , его можно распечатать с помощью команды ShellExecuteEx .

Управление принтерами

Вы можете управлять принтерами в системе с помощью функции SHInvokePrinterCommand . Эта функция позволяет:

  • Установка принтеров.
  • Откройте принтеры.
  • Получение свойств принтера.
  • Создание ссылок на принтер.
  • Напечатайте тестовую страницу.

Печать файлов с помощью ShellExecuteEx

Если с типом файла связана команда print, можно распечатать файл, вызвав ShellExecuteEx с командой print . Эта команда часто совпадает с командой open с добавлением флага, указывающего приложению на печать файла. Например, .txt файлы можно распечатать с помощью Microsoft WordPad. Таким образом , команда open для файла .txt будет соответствовать примерно следующей команде:

"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"

При использовании ShellExecuteEx для печати файла .txt WordPad открывает файл, печатает его, а затем закрывается, возвращая управление приложению. Следующий пример функции принимает полный путь и использует ShellExecuteEx для его печати с помощью команды print, связанной с расширением имени файла.

#include <shlobj.h>

HINSTANCE PrintFile(LPCTSTR pszFileName)
{
    SHELLEXECUTEINFO ShExecInfo;
    HINSTANCE hInst;

    // Fill the SHELLEXECUTEINFO array.

    ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
    ShExecInfo.fMask = NULL;
    ShExecInfo.hwnd = NULL;
    ShExecInfo.lpVerb = "print";
    ShExecInfo.lpFile = pszFileName;  // a fully qualified path
    ShExecInfo.lpParameters = NULL;
    ShExecInfo.lpDirectory = NULL;    
    ShExecInfo.nShow = SW_MAXIMIZE;
    ShExecInfo.hInstApp = NULL;

    hInst = ShellExecuteEx(&ShExecInfo);
    
    return hInst;
}