Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анализ очереди печати 
V
    Опции темы
GavriKos
Дата 5.1.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

Репутация: нет
Всего: 1



Доброго времени суток всем! Столкнулся с такой вот вещью. Необходимо обратится к очереди на печать (системной). Конкретно - нужно знать сколько страниц было отправлено и т.д. Страницы отправляются НЕ данной прогой, а чем-то левым (скажем, вордом). Реально ли это на шарпе? Есть ли какой-то класс (подскажите хотя б его) для работы с очередью печати. Или надо юзать винапи?
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
mr.DUDA
Дата 5.1.2008, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Копать в сторону WMI (неймспейс System.Management), в MSDN Index есть куча пунктов начинающихся с Win32_ - это "классы" WMI, где-то там должны быть классы печати. Большего сказать не могу, на текущем компе мсдн сломанный. Примеры работы с System.Management есть на форуме, искать по слову ManagementObjectSearcher.


--------------------
user posted image
PM MAIL WWW   Вверх
GavriKos
Дата 5.1.2008, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

Репутация: нет
Всего: 1



Спасибо!
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
GavriKos
Дата 5.1.2008, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

Репутация: нет
Всего: 1



А этот неймспейс во всех фреймворках? А то в мсдн он есть, а вот студия ругается на то, что нету такого...
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
mr.DUDA
Дата 5.1.2008, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Нужно добавить reference на сборку System.Management.dll


--------------------
user posted image
PM MAIL WWW   Вверх
GavriKos
Дата 5.1.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

Репутация: нет
Всего: 1



Уже разобрался smile А вот по поводу Win32_ классов можно подробнее? Ибо не получается их найти вообще. 

И еще. Нашел на форуме код в котором используется ObjectQuery. А как формируется строка для конструктора метода? В примере было что-то про пользователей. А почему она именно такая?

Это сообщение отредактировал(а) GavriKos - 5.1.2008, 20:07
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
mr.DUDA
Дата 5.1.2008, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(GavriKos @  5.1.2008,  18:58 Найти цитируемый пост)
А вот по поводу Win32_ классов можно подробнее? Ибо не получается их найти вообще. 

Открываешь Index (это боковое окно MSDN, где длиииинный список классов), набиваешь там: Win32_ переходишь к началу длиииинного списка WMI-классов. smile

Вот ссылка на online-версию мсдн, класс Win32_PrintJob.

По поводу составления запросов, там юзается почти обычный SQL. Имя класса WMI это "имя таблицы" для FROM, а после WHERE можно написать условия для выборки. То есть для выборки всех задач печати нужен запрос SELECT * FROM Win32_PrintJob. Проходим по результату запроса, у каждой выбранной "строки" (в System.Management это объект ManagementObject) получаем нужные нам свойства, список свойств см. по ссылке выше. Взять свойство у манагемент объекта можно через квадратные скобки с именем свойства. В примерах на форуме полно самых разных запросов и обработки результатов.


--------------------
user posted image
PM MAIL WWW   Вверх
GavriKos
Дата 5.1.2008, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

Репутация: нет
Всего: 1



Все. Разобрался. Просто в мсдн у меня стоял поиск тока по фреймверку, а надо было типа общее. 

Привожу код, на всяк случай, может кому пригодится

Код

            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(
                new System.Management.ObjectQuery("Select * From Win32_PrintJob"));
            foreach (ManagementObject user in searcher.Get())
            {
                MessageBox.Show(user["Document"].ToString());
            }


mr.DUDA спасибо огромное!


Это сообщение отредактировал(а) GavriKos - 5.1.2008, 23:12
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
tol05
Дата 5.1.2008, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



GavriKos, конечно пригодится!!! Я вот уже месяца 4 пытаюсь msdn найти у себя на машине. И не могу... Но надежды не теряю! 
Ты просто спас меня!!


mr.DUDA, нужно ИМХО закепить тему в ФАК-е (как работать с msdn) - это все актуальнее и актуальнее ИМХО!


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
mr.DUDA
Дата 6.1.2008, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



tol05, ну тема про работу с WMI актуальная, так что сарказм тут зря а за пример человеку спасибо. Может кому-нибудь пригодится, хоть в поиске будут находить.


--------------------
user posted image
PM MAIL WWW   Вверх
Forpost
Дата 28.8.2011, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 24.9.2007

Репутация: нет
Всего: нет



Здравствуйте, уважаемые форумчане.
Очень нужно реализовать контроль над распечатка для принтера. 
Из Ваших постов всё понятно, спасибо за помощь. Но самый главный вопрос остался открытым. Как узнать об изменении в очереди печати. Идея с ежесекундной проверкой не подходит, потому что придется постоянно теребить БД, чтобы узнать печатался данный файл или нет. Какие ещё варианты Вы видите?
  
PM MAIL   Вверх
jonie
Дата 29.8.2011, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Вот нашел сходу в гугле: http://www.codeproject.com/KB/printing/printwatchvbnet.aspx
Или вот: http://support.microsoft.com/kb/196805
... и т.д.в гугле.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.