Как открыть диалоговое окно свойств принтера

Переводы статьи Переводы статьи
Код статьи: 198860 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

При необходимости создания собственного диалогового окна печати, можно использовать функции PrinterProperties API для открытия диалогового окна свойств принтера. Пользователей можно внести в большинстве же изменения, это возможно, если они также предоставили этот диалоговое окно вручную. Единственная разница будет некоторые вкладки могут быть пропущены.

Дополнительная информация

Пошаговый пример

  1. Начать новый проект в Visual Basic. По умолчанию создается форма Form1.
  2. Добавьте в форму CommandButton и ListBox.
  3. Вставьте следующий код в модуль формы:
          Option Explicit
    
          Private Declare Function PrinterProperties Lib "winspool.drv" _
            (ByVal hwnd As Long, ByVal hPrinter As Long) As Long
    
          Private Declare Function OpenPrinter Lib "winspool.drv" _
            Alias "OpenPrinterA" (ByVal pPrinterName As String, _
            phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
    
          Private Declare Function ClosePrinter Lib "winspool.drv" _
            (ByVal hPrinter As Long) As Long
    
          Private Type PRINTER_DEFAULTS
               pDatatype As Long ' String
               pDevMode As Long
               pDesiredAccess As Long
          End Type
    
          Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
          Private Const PRINTER_ACCESS_ADMINISTER = &H4
          Private Const PRINTER_ACCESS_USE = &H8
          Private Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or _
             PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
    
          Private Sub Form_Load()
             Dim I As Integer
    
             ' List all available printers
             For I = 0 To Printers.Count - 1
                List1.AddItem Printers(I).DeviceName
                If Printers(I).DeviceName = Printer.DeviceName Then
                   List1.Selected(I) = True  ' Select current default printer
                End If
             Next I
          End Sub
    
          Private Sub List1_Click()
             Dim Prt As Printer
    
             ' Find and use the printer just selected in the ListBox
             For Each Prt In Printers
                If Prt.DeviceName = List1.Text Then
                      Set Printer = Prt
                   Exit For
                End If
             Next
          End Sub
    
          Private Sub Command1_Click()
             Dim RetVal As Long, hPrinter As Long
             Dim PD As PRINTER_DEFAULTS
    
             PD.pDatatype = 0
             ' Note that you cannot request more rights than you have as a user
             PD.pDesiredAccess = STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_USE
             PD.pDevMode = 0
             RetVal = OpenPrinter(Printer.DeviceName, hPrinter, PD)
             If RetVal = 0 Then
                 MsgBox "OpenPrinter Failed!"
             Else
                 RetVal = PrinterProperties(Me.hwnd, hPrinter)
                 RetVal = ClosePrinter(hPrinter)
             End If
          End Sub
    						
  4. Запустите проект и выберите команду Command1. Откроется диалоговое окно свойств для выбранного принтера. Обратите внимание, что некоторые вкладки могут отсутствовать с имеющимися на основании этих свойств вручную.

(c) Корпорация Майкрософт 1999 г. все права защищены. Взносы, Крис E. Jolley, корпорация Майкрософт.

Свойства

Код статьи: 198860 - Последний отзыв: 4 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Enterprise Edition
Ключевые слова: 
kbapi kbhowto kbprint kbspooler kbmt KB198860 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:198860

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com