Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать, находится ли документ в очереди печати принтера?

266
28 ноября 2003 года
mhaturov
901 / / 23.10.2003
Народ, у меня беда - посылаю документ на печать. Нужно приостановить выполнение приложения, пока документ не распечатан. Как узнать, распечатан ли он? Вышлите, если не трудно, примерчик.
239
29 ноября 2003 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by mhaturov
Народ, у меня беда - посылаю документ на печать. Нужно приостановить выполнение приложения, пока документ не распечатан. Как узнать, распечатан ли он? Вышлите, если не трудно, примерчик.



EnumJobs и может понадобиться EnumPrinters, Хотя врядли...

Примерчик для укрепление материала:

Код:
Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As Any) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Any, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
Private Sub Form_Load()
    'Name: Alexey Dolonet
    'E-Mail: [email]dolonet@mail.ru[/email]
    Dim hPrinter As Long, lNeeded As Long, lReturned As Long
    Dim lJobCount As Long
    OpenPrinter Printer.DeviceName, hPrinter, ByVal 0&
    EnumJobs hPrinter, 0, 99, 1, ByVal 0&, 0, lNeeded, lReturned
    If lNeeded > 0 Then
        ReDim byteJobsBuffer(lNeeded - 1) As Byte
        EnumJobs hPrinter, 0, 99, 1, byteJobsBuffer(0), lNeeded, lNeeded, lReturned
        If lReturned > 0 Then
            lJobCount = lReturned
        Else
            lJobCount = 0
        End If
    Else
        lJobCount = 0
    End If
    ClosePrinter hPrinter
    MsgBox "Jobs in printer queue: " + CStr(lJobCount), vbInformation
End Sub
266
29 ноября 2003 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Dolonet


EnumJobs и может понадобиться EnumPrinters, Хотя врядли...

Примерчик для укрепление материала:
Код:
Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As Any) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Any, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
Private Sub Form_Load()
    'Name: Alexey Dolonet
    'E-Mail: [email]dolonet@mail.ru[/email]
    Dim hPrinter As Long, lNeeded As Long, lReturned As Long
    Dim lJobCount As Long
    OpenPrinter Printer.DeviceName, hPrinter, ByVal 0&
    EnumJobs hPrinter, 0, 99, 1, ByVal 0&, 0, lNeeded, lReturned
    If lNeeded > 0 Then
        ReDim byteJobsBuffer(lNeeded - 1) As Byte
        EnumJobs hPrinter, 0, 99, 1, byteJobsBuffer(0), lNeeded, lNeeded, lReturned
        If lReturned > 0 Then
            lJobCount = lReturned
        Else
            lJobCount = 0
        End If
    Else
        lJobCount = 0
    End If
    ClosePrinter hPrinter
    MsgBox "Jobs in printer queue: " + CStr(lJobCount), vbInformation
End Sub


Dolonet! Кажется, ты меня спас!!!:) Я, кстати, в ремарках программы сохранил ссылку, что это твой код и твой e-mail. Надеюсь, ты не против?

239
29 ноября 2003 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by mhaturov

Dolonet! Кажется, ты меня спас!!!:) Я, кстати, в ремарках программы сохранил ссылку, что это твой код и твой e-mail. Надеюсь, ты не против?



%))) Очень радует, что я тебе помог... Я вообще пожизни мягкий, добрый и пушистый %)

А е-майл на твое усмотрение... Код все-равно мало кто смотрит, а тот, кто разберется в таком коде, не нуждается в моей помощи %) Можешь юрл этого форума пихнуть - куда эффективней! Хорошая идея :)

266
29 ноября 2003 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Dolonet


%))) Очень радует, что я тебе помог... Я вообще пожизни мягкий, добрый и пушистый %)

А е-майл на твое усмотрение... Код все-равно мало кто смотрит, а тот, кто разберется в таком коде, не нуждается в моей помощи %) Можешь юрл этого форума пихнуть - куда эффективней! Хорошая идея :)


Ну да мало ли кто этот код дебажить будет. В принципе и я сам, вроде, давно пишу, да вот, как с одной темы на другую перехожу все приёмы забываю:{ . Так что...
А по поводу URL - так и сделаю - чем больше народу на форуме, тем лучше! Прямо в комментарии к Sub Main включу!:D

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог