Condividi tramite


Gestione delle stampanti

L'API Shell fornisce funzioni che è possibile usare per gestire le stampanti di rete. Se un file ha il verbo di stampa associato a esso, è possibile usare il comando ShellExecuteEx per stamparlo.

Gestione stampanti

È possibile gestire le stampanti in un sistema con la funzione SHInvokePrinterCommand . Questa funzione consente di:

  • Installare le stampanti.
  • Aprire le stampanti.
  • Ottenere le proprietà della stampante.
  • Creare collegamenti alla stampante.
  • Stampare una pagina di prova.

Stampa di file con ShellExecuteEx

Se un tipo di file ha un comando di stampa associato a esso, è possibile stampare il file chiamando ShellExecuteEx con stampa come verbo. Questo comando è spesso uguale a quello usato per il verbo aperto , con l'aggiunta di un flag per indicare all'applicazione di stampare il file. Ad esempio, i file .txt possono essere stampati da Microsoft WordPad. Il verbo aperto per un file .txt corrisponde quindi a un comando simile al seguente:

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

Quando si usa ShellExecuteEx per stampare un file .txt, WordPad apre il file, lo stampa e quindi chiude, restituisce il controllo all'applicazione. La funzione di esempio seguente accetta un percorso completo e usa ShellExecuteEx per stamparla usando il comando di stampa associato all'estensione del nome file.

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