powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как показать все вкладки свойств принтера
2 сообщений из 2, страница 1 из 1
Как показать все вкладки свойств принтера
    #38788690
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь открыть окно свойств принтера:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
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)
   
Public Function DisplayPrinterProperties(DeviceName As String) _
  As Boolean
         
On Error GoTo ErrorHandler
Dim lAns As Long, hPrinter As Long
Dim typPD As PRINTER_DEFAULTS
typPD.pDatatype = 0
typPD.pDesiredAccess = PRINTER_ALL_ACCESS
typPD.pDevMode = 0
lAns = OpenPrinter(Printer.DeviceName, hPrinter, typPD)
If lAns <> 0 Then
    lAns = PrinterProperties(Form1.hwnd, hPrinter)
    DisplayPrinterProperties = lAns <> 0
End If
ErrorHandler:
If hPrinter <> 0 Then ClosePrinter hPrinter
    
End Function


Private Sub Command_Click()
  DisplayPrinterProperties "ZDesigner ZD500R-300dpi ZPL"
End Sub



Проблема в том, что открываются только часть вкладок настроек принтера. На картинке левая форма, а должна выглядеть как правая. Вопрос как показать все вкладки свойств принтера?
...
Рейтинг: 0 / 0
Как показать все вкладки свойств принтера
    #38788711
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, оказывается я вообще не то окно открывал! Вот правильный код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Option Explicit
Private Const PRINTACTION_PROPERTIES = 1&
Private Const PRINTACTION_DOCUMENTDEFAULTS As Long = 6
Private Declare Function SHInvokePrinterCommand Lib "Shell32.dll" _
  Alias "SHInvokePrinterCommandA" (ByVal hwnd As Long, _
  ByVal uAction As Long, ByVal lpBuf1 As String, _
  ByVal lpBuf2 As String, ByVal fModal As Long) As Long
Private Sub Command1_Click()
  Dim lngRet    As Long
  Dim strMyPrinter As String
  strMyPrinter = Combo1.Text
  SHInvokePrinterCommand Me.hwnd, PRINTACTION_DOCUMENTDEFAULTS, strMyPrinter, vbNullString, False
End Sub
Private Sub Combo1_Click()
  Dim objPrinter  As Printer
  Dim strMyPrinter As String
  strMyPrinter = Combo1.Text
  For Each objPrinter In Printers
    If objPrinter.DeviceName = strMyPrinter Then
     Set Printer = objPrinter
    End If
  Next
End Sub
Private Sub Form_Load()
  Dim objPrinter As Printer
  For Each objPrinter In Printers
    Combo1.AddItem objPrinter.DeviceName
  Next
  Combo1.Text = Printer.DeviceName
End Sub
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как показать все вкладки свойств принтера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]