Yazıcıları Yönetme

Shell API'sinde, ağ yazıcılarını yönetmek için kullanabileceğiniz işlevler sağlanır. Bir dosyada kendisiyle ilişkilendirilmiş yazdırma fiili varsa, yazdırmak için ShellExecuteEx komutunu kullanabilirsiniz.

Yazıcı Yönetimi

SHInvokePrinterCommand işleviyle bir sistemdeki yazıcıları yönetebilirsiniz. Bu işlev şunları yapmanızı sağlar:

  • Yazıcıları yükleyin.
  • Yazıcıları açın.
  • Yazıcı özelliklerini alma.
  • Yazıcı bağlantıları oluşturun.
  • Test sayfasını yazdırma.

ShellExecuteEx ile Dosyaları Yazdırma

Dosya türüyle ilişkilendirilmiş bir yazdırma komutu varsa, fiil olarak yazdırma ile ShellExecuteEx çağırarak dosyayı yazdırabilirsiniz. Bu komut genellikle açma fiili için kullanılan komutla aynıdır ve uygulamaya dosyayı yazdırmasını belirten bir bayrak eklenir. Örneğin, .txt dosyaları Microsoft WordPad tarafından yazdırılabilir. .txt dosyası için açık fiili, bu nedenle aşağıdaki komut gibi bir şeyle karşılık gelir:

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

.txt bir dosyayı yazdırmak için ShellExecuteEx kullandığınızda, WordPad dosyayı açar, yazdırır ve sonra denetimi uygulamaya döndürerek kapatır. Aşağıdaki örnek işlev, tam nitelikli bir yolu alır ve dosya adı uzantısıyla ilişkilendirilmiş yazdırma komutunu kullanarak ShellExecuteEx 'i kullanarak onu yazdırır.

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