Hantera skrivare
Shell-API:et innehåller funktioner som du kan använda för att hantera nätverksskrivare. Om en fil har skriv ut verb som är associerat med den kan du använda kommandot ShellExecuteEx för att skriva ut det.
Skrivarhantering
Du kan hantera skrivare i ett system med funktionen SHInvokePrinterCommand. Med den här funktionen kan du:
- Installera skrivare.
- Öppna skrivare.
- Hämta skrivaregenskaper.
- Skapa skrivarlänkar.
- Skriv ut en testsida.
Skriva ut filer med ShellExecuteEx
Om en filtyp har ett skrivkommando kopplat till sig kan du skriva ut filen genom att anropa ShellExecuteEx med skriva ut som verb. Det här kommandot är ofta samma som det som används med öppna verb, med tillägg av en flagga som talar om för programmet att skriva ut filen. Till exempel kan .txt filer skrivas ut av Microsoft WordPad. Det öppna verbet för en .txt fil motsvarar alltså något som liknar följande kommando:
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
När du använder ShellExecuteEx för att skriva ut en .txt fil öppnar WordPad filen, skriver ut den och stänger sedan och returnerar kontrollen till programmet. Följande exempelfunktion använder en fullständigt kvalificerad sökväg och använder ShellExecuteEx för att skriva ut den med hjälp av utskriftskommandot som är associerat med filnamnstillägget.
#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;
}