Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'API Shell fornisce funzioni che è possibile usare per gestire le stampanti in rete. Se un file ha il verbo stampa associato, è 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 stampanti.
- Aprire stampanti.
- Ottenere le proprietà della stampante.
- Creare collegamenti alla stampante.
- Stampare una pagina di test.
Stampa di file con ShellExecuteEx
Se a un tipo di file è associato un comando di stampa, è possibile stampare il file chiamando ShellExecuteEx con stampa come verbo. Questo comando è spesso lo stesso di quello usato per il verbo aprire, con l'aggiunta di un flag per indicare all'applicazione di stampare il file. Ad esempio, .txt file possono essere stampati da Microsoft WordPad. Il verbo aprire per un file di .txt corrisponderebbe a un comando simile al seguente:
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
Quando si utilizza ShellExecuteEx per stampare un file .txt, WordPad apre il file, lo stampa e quindi chiude, restituendo il controllo all'applicazione. La funzione di esempio seguente richiede un percorso completamente qualificato e usa ShellExecuteEx per stamparlo, utilizzando 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;
}