Код:
Func Prnbutton()
GUISetState(@SW_DISABLE, $mainwindow)
$printers = ""
$defPrntr = ""
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer")
For $objItem In $colItems
$printers = $printers & ($objItem.Caption & "|") ; ", Имя порта: " & $objItem.PortName &
If StringInStr($objItem.Caption, "pdf") Then
$defPrntr = $objItem.Name
EndIf
If StringInStr($objItem.Caption, "XPS") And $defPrntr = "" Then
$defPrntr = $objItem.Name
EndIf
Next
If $defPrntr = "" Then
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
$colPrinters = $objWMIService.ExecQuery("Select * From Win32_Printer Where Default = True")
For $objPrinter In $colPrinters
$defPrntr = $objPrinter.Name
Next
EndIf
; отрисовываем окно выбора принтера и опций
Global $pGui = GUICreate("Выбор настроек принтера", 400, 310, Default, Default, $WS_BORDER, -1, $mainwindow)
GUICtrlCreateLabel("Выбор принтера", 10, 8, 100, 50, $SS_LEFT)
GUICtrlSetFont(-1, 9, 700, 0, "Verdana")
Global $printer = GUICtrlCreateCombo("", 120, 10, 260, 40, $CBS_DROPDOWNLIST + $WS_VSCROLL)
GUICtrlSetFont(-1, 09, 700, 0, "Verdana")
GUICtrlSetData($printer, $printers, $defPrntr)
GUICtrlCreateLabel("Печать билетов с:", 30, 55, 160, 18, $SS_LEFT)
GUICtrlSetFont(-1, 09, 700, 0, "Verdana")
$diap = ""
For $s = 1 To _GUICtrlListView_GetItemCount($idListView)
$diap = $diap & "|" & $s
Next
Global $dstart = GUICtrlCreateCombo("", 200, 50, 60, 28, $CBS_DROPDOWNLIST + $WS_VSCROLL)
GUICtrlSetFont(-1, 10, 700, 0, "Verdana")
GUICtrlSetData($dstart, $diap, 1)
GUICtrlCreateLabel("по:", 270, 55, 30, 18, $SS_LEFT)
GUICtrlSetFont(-1, 09, 700, 0, "Verdana")
Global $dend = GUICtrlCreateCombo("", 300, 50, 60, 28, $CBS_DROPDOWNLIST + $WS_VSCROLL)
GUICtrlSetFont(-1, 10, 700, 0, "Verdana")
GUICtrlSetData($dend, $diap, _GUICtrlListView_GetItemCount($idListView))
; выбор печатаемых документов
Global $Chbilet01 = GUICtrlCreateCheckbox("", 10, 80, 20, 28)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateLabel("Билеты", 30, 85, 360, 20, $SS_LEFT)
GUICtrlSetFont(-1, 9, 700, 0, "Verdana")
Global $Chbilet02 = GUICtrlCreateCheckbox("", 10, 105, 20, 28)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateLabel("Листы проверки", 30, 110, 360, 18, $SS_LEFT)
GUICtrlSetFont(-1, 9, 700, 0, "Verdana")
Global $Chbilet03 = GUICtrlCreateCheckbox("", 10, 130, 20, 28)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateLabel("Лист проверки с ответами", 30, 135, 360, 18, $SS_LEFT)
GUICtrlSetFont(-1, 9, 700, 0, "Verdana")
GUICtrlCreateLabel("--- дополнительные опции ---", 30, 160, 380, 18, $SS_CENTER)
GUICtrlSetFont(-1, 9, 700, 0, "Verdana")
Global $Chbilet04 = GUICtrlCreateCheckbox("", 10, 180, 20, 28)
GUICtrlSetState(-1, $GUI_UNCHECKED)
GUICtrlCreateLabel("Сборники вопросов", 30, 185, 360, 18, $SS_LEFT)
GUICtrlSetFont(-1, 9, 700, 0, "Verdana")
Global $Chbilet05 = GUICtrlCreateCheckbox("", 10, 205, 20, 28)
GUICtrlSetState(-1, $GUI_UNCHECKED)
GUICtrlCreateLabel("Сборники с правильными ответами", 30, 210, 360, 18, $SS_LEFT)
GUICtrlSetFont(-1, 9, 700, 0, "Verdana")
; отрисовка кнопок печать и отмена
$Print = GUICtrlCreateButton("Печать", 90, 240, 100, 40, $BS_MULTILINE + $BS_CENTER)
GUICtrlSetFont(-1, 12, 700, 0, "Verdana")
$ButtonCancel3 = GUICtrlCreateButton("Отмена", 200, 240, 100, 40, $BS_MULTILINE + $BS_CENTER)
GUICtrlSetFont(-1, 12, 700, 0, "Verdana")
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUICtrlSetOnEvent($Print, "Print")
GUICtrlSetOnEvent($ButtonCancel3, "ButtonCancel3")
GUISetState()
EndFunc ;==>Prnbutton