Administración de impresoras
La API de Shell proporciona funciones que puede usar para administrar impresoras en red. Si un archivo tiene asociado el verbo de impresión , puede usar el comando ShellExecuteEx para imprimirlo.
Administración de impresoras
Puede administrar impresoras en un sistema con la función SHInvokePrinterCommand . Esta función le permite:
- Instale impresoras.
- Abra impresoras.
- Obtiene las propiedades de la impresora.
- Crear vínculos de impresora.
- Imprima una página de prueba.
Imprimir archivos con ShellExecuteEx
Si un tipo de archivo tiene asociado un comando de impresión, puede imprimir el archivo llamando a ShellExecuteEx con print como verbo. Este comando suele ser el mismo que el usado para el verbo abierto , con la adición de una marca para indicar a la aplicación que imprima el archivo. Por ejemplo, Microsoft WordPad puede imprimir .txt archivos. El verbo abierto de un archivo .txt correspondería por lo tanto a algo parecido al siguiente comando:
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
Cuando se usa ShellExecuteEx para imprimir un archivo de .txt, WordPad abre el archivo, lo imprime y, a continuación, lo cierra y devuelve el control a la aplicación. La siguiente función de ejemplo toma una ruta de acceso completa y usa ShellExecuteEx para imprimirla mediante el comando print asociado a su extensión de nombre de archivo.
#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;
}