Страница: 1 |
Страница: 1 |
Вопрос: Close ACROBAT
Добавлено: 27.08.04 15:15
Автор вопроса: LIS
Теперь вопрос.
1) Имею pdf файл
2) Хочу печатать внутри VB 6.0
3) Использую фунцию
res = shellExecuteMe.hWnd, "PRINT", "KUKU.PDF", txtPar, "C:\", 2)
4) Запускается ACROBAT и печатает... УРА !!!!
5) Но ACROBAT остается открытым...
6) Как обнаружить конец работы ACROBATa и закрыть его ?
7) Снять задачу не могу после SHELL, идет загрузка ACROBATa ( она занимает n секунд в зависимости от версии)
Вот и весь вопрос..
Заранее спасибо
LISA
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #1
Добавлено: 27.08.04 17:43
Закрывай его SendMessage ,WM_QUIT ...
Номер ответа: 2
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #2
Добавлено: 27.08.04 18:22
When?
Номер ответа: 3
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #3
Добавлено: 27.08.04 18:33
То есть находишь окно ACROBAT'a по заголовку (Через FindWindow) и посылаешь ему SendMessage hwnd,&H10,0,0
Номер ответа: 4
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #4
Добавлено: 27.08.04 18:59
When ??????
Try to understand my QUESTION !!!!
I know how I can close !!!!
But I do not know when ACROBAT finished its job!!!!
Номер ответа: 5
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #5
Добавлено: 27.08.04 19:15
Если бы ты запускал внешнюю программу через Shell (или через CreateProcess), то код ожидания завершения был бы очень простым и компактным: обе эти функции возвращают process Id. Но в твоём случае, конечно, подходит только ShellExecute - и ожидание завершения выливается вот в такой ужасный код:
http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1102&lngWId=1
В этом коде, правда, не грех бы избавиться от циклов, перейдя взамен на API-шный таймер...
Номер ответа: 6
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #6
Добавлено: 28.08.04 13:08
Наверно нужно ждать дождаться, когда у принтера не останется заданий
Номер ответа: 7
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #7
Добавлено: 28.08.04 16:11
Это и я хочу сделать !!!!!!!!
Но как?
Номер ответа: 8
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #8
Добавлено: 29.08.04 10:14
Попробуй через WMI.
Номер ответа: 9
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #9
Добавлено: 29.08.04 14:10
Можно попробовать ловить уведомления принтера
Поищи примеры на FindFirstPrinterChangeNotification
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 01.09.04 08:46
А на кой тебе акробат? Если он у тебя стоит - используй ActiveX и открывай документ непосредственно в своей программе. Оттуда печатай и закрывай форму с этим контролом.
Номер ответа: 11
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #11
Добавлено: 01.09.04 20:34
My users do not want to see ANY dialog for printer selection and etc...
Just click button <<Print>> and have result.