Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 29.08.04 10:14
Попробуй через WMI.

Ответить

Номер ответа: 9
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #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.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам