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