|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.02.2008, 14:56 | #1 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Как получить полный путь к файлу, который был послан на принтер?
В общем Нужно узнать какой файл в данный момент печатается принтером. Делаю это через FindFirstPrinterChangeNotification. Логгирование работает нормально, но хотелось бы получать не просто инфу о задании а еще и полный путь к файлу, который в этом задании.
Это при условии что распечатывается именно открытый файл, который был кем то создан, и помешен в папку с которой у нас происходит печать. У кого какие идеи?
I'm learning to live...
|
29.02.2008, 15:16 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
29.02.2008, 15:31 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Да это я и использую. Вот смотри:
Код:
Не ну може я не заметил... Но помоему там нет такого, есть просто типа Заголовок получаю, это есть, а вот где этот файл находится увы не получаю, а это и нужно.
I'm learning to live...
|
29.02.2008, 15:38 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
А в pDocument чего дает? Чего-то я уже плохо помню, кажется там было, щас поэкспериментирую...
|
29.02.2008, 15:52 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А он дает название документа, пославшего печать:"Microsoft Word - Документ1"
Я уж думаю сделать примерно так: Попробовать узнать хендлы файлов которые открыл процесс, активный на данный момент, и по этим хендлам выдернуть полный путь Отсюда вопрос: Напомни как второе реализовать Вот щаз буду пробовать ZwQueryInformationProcess, но может есть чего другое...
I'm learning to live...
Последний раз редактировалось Stilet; 29.02.2008 в 16:05. |
29.02.2008, 16:23 | #6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Дык, "Microsoft Word - Документ1"... А если он из воздуха печатает, какое же там имя файла? Да и файл, в принципе, может быть уже закрыт к началу печати...
|
29.02.2008, 16:57 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Да эт я знаю, и это еще одна трудность.
Даже если я получу файлы, мне придется как то соспоставлять этот Microsoft Word - Документ1 с открытыми, а про печати нефайловые я вообще молчу, тут уж придется довольствоваться просто названием. Но - дело в том что как правило документы формируются не на печатной машине. они туда уже попадают как файлы, потому 90% можно с уверенностью сказать что печать осуществлялась именно из файла, который физически есть, этого вполне хватит для логов. Цитата:
I'm learning to live...
Последний раз редактировалось Stilet; 29.02.2008 в 17:00. |
|
29.02.2008, 17:49 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Сопоставление фалов процессу это да, не подарок, я помнится делал что-то похожее с NtQuerySystemInformation и потом наверху через ObQueryNameString. Если вспомню как или не убил и найду, выложу, но в любом случае, придется "наверх" лезть. Хотя.. мне кажется, что Руссинович знает еще какой-то способ, Process Explorer вроде бы даже с задушеным драйвером хэндлы расписывает.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Из процесса получить полный путь к ехе файлу. | Ozerich | Общие вопросы Delphi | 4 | 08.08.2008 12:12 |
Как узнать полный путь к *.ехе файлу | SeЯgey | Помощь студентам | 3 | 27.05.2008 09:46 |
Путь к файлу | Terran | Общие вопросы Delphi | 3 | 13.04.2008 01:18 |
Функция CallWndProc. Получить путь к папке или файлу к которому преднозначено сообщение | Irat | Помощь студентам | 1 | 16.02.2008 23:36 |
как в memo выводит полный путь к файлу? Файлом является данная программа. | Alar | Компоненты Delphi | 0 | 29.10.2006 23:24 |