Verwalten von Druckern
Die Shell-API stellt Funktionen bereit, die Sie zum Verwalten von Netzwerkdruckern verwenden können. Wenn einer Datei das Druckverb zugeordnet ist, können Sie den Befehl ShellExecuteEx verwenden, um sie zu drucken.
Druckerverwaltung
Sie können Drucker auf einem System mit der ShInvokePrinterCommand-Funktion verwalten. Diese Funktion ermöglicht Folgendes:
- Installieren Sie Drucker.
- Öffnen Sie Drucker.
- Ruft Druckereigenschaften ab.
- Erstellen sie Druckerlinks.
- Drucken Sie eine Testseite.
Drucken von Dateien mit ShellExecuteEx
Wenn einem Dateityp ein Druckbefehl zugeordnet ist, können Sie die Datei drucken, indem Sie ShellExecuteEx mit print als Verb aufrufen. Dieser Befehl entspricht häufig dem für das geöffnete Verb, wobei ein Flag hinzugefügt wird, um die Anwendung anweisen zu können, die Datei zu drucken. Für instance können .txt Dateien von Microsoft WordPad gedruckt werden. Das geöffnete Verb für eine .txt-Datei würde daher etwa dem folgenden Befehl entsprechen:
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
Wenn Sie ShellExecuteEx zum Drucken einer .txt-Datei verwenden, öffnet WordPad die Datei, druckt sie aus und schließt dann, und gibt die Steuerung an die Anwendung zurück. Die folgende Beispielfunktion verwendet einen vollqualifizierten Pfad und verwendet ShellExecuteEx , um ihn zu drucken, wobei der Druckbefehl verwendet wird, der der Dateinamenerweiterung zugeordnet ist.
#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;
}