次の方法で共有


プリンターの管理

シェル API には、ネットワークプリンターの管理に使用できる関数が用意されています。 ファイルに 印刷 動詞が関連付けられている場合は、 ShellExecuteEx コマンドを使用して印刷できます。

プリンター管理

SHInvokePrinterCommand 関数を使用して、システム上のプリンターを管理できます。 この関数を使用すると、次のことができます。

  • プリンターをインストールします。
  • プリンターを開きます。
  • プリンターのプロパティを取得します。
  • プリンター リンクを作成します。
  • テスト ページを印刷します。

ShellExecuteEx を使用したファイルの印刷

ファイルの種類に印刷コマンドが関連付けられている場合は、動詞として print を指定して ShellExecuteEx を呼び出してファイルを 印刷 できます。 このコマンドは、多くの場合、 開いている 動詞に使用されるコマンドと同じで、ファイルを印刷するようにアプリケーションに指示するフラグが追加されています。 たとえば、.txtファイルは Microsoft WordPad で印刷できます。 したがって、.txt ファイルの オープン 動詞は、次のコマンドに対応します。

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

ShellExecuteEx を使用して.txt ファイルを印刷すると、WordPad によってファイルが開き、印刷されてから閉じられ、コントロールがアプリケーションに返されます。 次のサンプル関数は完全修飾パスを受け取り、 ShellExecuteEx を使用してファイル名拡張子に関連付けられた print コマンドを使用して印刷します。

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