Gerenciando impressoras
A API do Shell fornece funções que você pode usar para gerenciar impressoras em rede. Se um arquivo tiver o imprimir verbo associado a ele, você poderá usar o comando ShellExecuteEx para imprimi-lo.
Gestão de impressoras
Você pode gerir impressoras em um sistema com a função SHInvokePrinterCommand. Esta função permite-lhe:
- Instale impressoras.
- Abra impressoras.
- Obtenha as propriedades da impressora.
- Crie ligações para impressora.
- Imprima uma página de teste.
Imprimindo arquivos com ShellExecuteEx
Se um tipo de arquivo tiver um comando print associado a ele, você poderá imprimir o arquivo chamando ShellExecuteEx com print como o verbo. Este comando é muitas vezes o mesmo que o usado para o abrir verbo, com a adição de um sinalizador para dizer ao aplicativo para imprimir o arquivo. Por exemplo, .txt arquivos podem ser impressos pelo Microsoft WordPad. O verbo abrir para um ficheiro .txt corresponderia assim a algo como o 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;
}