Ler em inglês

Compartilhar via


Gerenciar impressoras

A API do Shell fornece funções que você pode usar para gerenciar impressoras em rede. Se um arquivo tiver o verbo de impressão associado a ele, você poderá usar o comando ShellExecuteEx para imprimi-lo.

Gerenciamento de impressora

Você pode gerenciar impressoras em um sistema com a função SHInvokePrinterCommand . Essa função permite que você:

  • Instalar impressoras.
  • Abrir impressoras.
  • Obter propriedades da impressora.
  • Criar links de impressora.
  • Imprima uma página de teste.

Imprimindo arquivos com ShellExecuteEx

Se um tipo de arquivo tiver um comando de impressão associado a ele, você poderá imprimir o arquivo chamando ShellExecuteEx com print como o verbo. Esse comando geralmente é o mesmo usado para o verbo aberto , com a adição de um sinalizador para instruir o aplicativo a imprimir o arquivo. Por exemplo, .txt arquivos podem ser impressos pelo Microsoft WordPad. O verbo aberto para um arquivo .txt corresponderia, portanto, a algo semelhante ao seguinte comando:

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

Quando você usa ShellExecuteEx para imprimir um arquivo .txt, o WordPad abre o arquivo, imprime-o e, em seguida, fecha, retornando o controle para o aplicativo. A função de exemplo a seguir usa um caminho totalmente qualificado e usa ShellExecuteEx para imprimi-lo, usando o comando print associado à sua extensão de nome de arquivo.

#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;
}