Текущий архив: 2008.11.09;
Скачать: CL | DM;
Вниз
Как определить что сетевой принтер включен? Найти похожие ветки
← →
Agrh (2008-09-30 10:09) [0]Подскажите, pls, как определить что сетевой принтер включен, зная его наименование?
← →
Vlad Oshin © (2008-09-30 10:14) [1]пропинговать, мб?
← →
Сергей М. © (2008-09-30 10:26) [2]
> Agrh (30.09.08 10:09)
Осуществить с ним любой информационный обмен.
← →
Сергей М. © (2008-09-30 10:44) [3]
> Vlad Oshin © (30.09.08 10:14) [1]
1. Сетевой контроллер в общем случае не обязан быть непосредственно на борту принтера.
2. Сетевая подсистема в общем случае не обязана отвечать на ICMP-запросы.
3. Сетевое инф.взаимодействие в общем случае не обязано быть организовано на базе IP.
← →
Поросенок Винни-Пух © (2008-09-30 11:12) [4]как определить что сетевой принтер включен
и что даст это знание?
← →
Vlad Oshin © (2008-09-30 11:13) [5]
> что сетевой принтер включен
← →
Правильный$Вася (2008-09-30 11:16) [6]
> Vlad Oshin © (30.09.08 11:13) [5]
тогда следующий вопрос может возникнуть
как определить его готовность?
← →
Vlad Oshin © (2008-09-30 11:22) [7]
> Правильный$Вася (30.09.08 11:16) [6]
где то я уже это читал..
:)
← →
Agrh (2008-09-30 11:25) [8]Собственно проблема в том, что пользователи забывают включать то комп к которому подключен принтер, то сам принтер. В рез-те лезут ошибки.
Хотелось бы заранее знать о готовности принтера и сообщать пользователю об этом, скажем, в строке статуса.
Если можно киньте примерчик.
← →
Сергей М. © (2008-09-30 11:29) [9]
> В рез-те лезут ошибки
Эти "лезущие ошибки" и есть факты недоступности принтера.
А что, в вашей сети админов истребили как класс ?)
← →
Anatoly Podgoretsky © (2008-09-30 11:30) [10]
> Если можно киньте примерчик.
Ремень лучшее средство.
← →
Anatoly Podgoretsky © (2008-09-30 11:31) [11]А ты зачем в пользовательские функции то лезешь, или ты этот самый забывчатый или ты только объявление разместил?
← →
Поросенок Винни-Пух © (2008-09-30 11:32) [12]Собственно проблема в том, что пользователи забывают включать то комп к которому подключен принтер,
Бывает что включить не забывают, но забывают зарядить его бумагой/чернилами/порошком.
Дальше что?
Бывает что и это не забывают.
Все есть, все печатается.
Но в очереди уже есть 100 документов и когда дойдет дело до твоего документа (который тоже уже в очереди) то чего-то может не хватить.
Твои действия?
← →
Anatoly Podgoretsky © (2008-09-30 11:42) [13]
> то чего-то может не хватить.
Например задания
Ну не понимают люди как это устроено и что Виндоус об этом не знает, а драйверов от производителей куча и все озабоченые.
← →
Правильный$Вася (2008-09-30 11:48) [14]а у нас регулярно принтер "засыпает", например
т.е. он включен, у него всего хватает, но печатать он не желает, пока рубильником на нем не щелкнешь
но он не "висит", он просто спит, а просыпаться почему-то не желает
← →
Agrh (2008-09-30 11:48) [15]У меня нету очереди в 100 документов!! Физически не может быть :)
максимум 2 документа, да и то маловероятно.
Я вроде про принтер, а мне то про ремни, а то про админов.((
А по существу кто-нить может подсказать?
← →
Сергей М. © (2008-09-30 11:49) [16]Мне это определенно нравится - вместо того чтобы искать решение по автоматизации включения и подготовки дивайса к штатной работе автор ищет решение по автоматизации вывода сообщения "Сколько раз можно повторять - сначала включи принтер, бестолочь, а потом гони ему задания !"
)
← →
Сергей М. © (2008-09-30 11:52) [17]
> по существу кто-нить может подсказать?
А прло админов и есть "по существу" : это и[ задача - приводить сет.устройства в штатное рабочеее состояние, хоть ручками, если не "влом" это делать каждое утро, хоть с пом. имеющихся или вновь разрабатываемых программно-аппаратных средств автоматизации.
← →
Правильный$Вася (2008-09-30 11:54) [18]
> А по существу кто-нить может подсказать?
существо должно дышать
если же оно не дышет, то пхать ему задания бессмысленно
← →
oldman © (2008-09-30 11:55) [19]
> Сергей М. © (30.09.08 11:49) [16]
> автор ищет решение по автоматизации вывода сообщения
Мне бы тоже неплохо-бы...
А то каждый день звонок из бухгалтерии "У нас принтер не печатает, хотя включен".
Ответ: "Компьютер, к которому он подключен, тоже включите!!!"
:)
← →
oldman © (2008-09-30 11:58) [20]
> Agrh (30.09.08 11:48) [15]
> А по существу кто-нить может подсказать?
По существу - проблема твоя бессмыслена.
Например, послал ты задание на принтер, определив предварительно, что он включен.
Во время выполнения задания принтер выключили. И т.д. и т.п.
Самое верное решение как раз админы и ремни.
← →
Anatoly Podgoretsky © (2008-09-30 11:58) [21]> oldman (30.09.2008 11:55:19) [19]
Если бы тебе точно нужно именно это решение, то безвозмеждно делюсь.
На принтер приклеиваешь бумажку включите компьютер, а на компьютер - включите принтер. Бухгалтерам на их мониторах - включите компьютер и принтер. Это научное решение. А ламерское купить самый дешевый принт-сервер, если принтер не имеет его.
← →
Сергей М. © (2008-09-30 12:00) [22]
> oldman © (30.09.08 11:55) [19]
> Ответ: "Компьютер, к которому он подключен, тоже включите!
> !!"
Автоматизировать включение сетевого компа в большинстве случаем неизмеримо проще чем проделать тоже самое с принтером)
← →
oldman © (2008-09-30 12:02) [23]
> Anatoly Podgoretsky © (30.09.08 11:58) [21]
> ...приклеиваешь бумажку...
> Это научное решение.
Обожаю программистов!!!
← →
Правильный$Вася (2008-09-30 12:07) [24]
> > Это научное решение.
нифига
научное - это лишение % зарплаты за каждый отрыв админа не по существу
← →
Agrh (2008-09-30 12:11) [25]Блин, я тут и админ и программист и еще бог знает кто.. ))
И мне проще вывести сообщение чем бежать в другую комнату, где мне тычут в экран и говорят про ошибки! И включать за всех всё мне что-то лень.
Про бумажки с "включи это" - это не бухгалтерия, это производство.
Здесь один принтер. Порой за комп с принтером никто не садиться работать ни разу за весь день. Работают с других мест. И включать принтер забывают.
Вместе с печатью идет запись в БД. В рез-те запись в БД есть, а на печати пусто. Приходится лезть в базу и править.
Именно по этим причинам мне хочется сначала проверять принтер, а уж потом разрешать людям жать на кнопки.
← →
Сергей М. © (2008-09-30 12:16) [26]
> я тут и админ и программист и еще бог знает кто
ну так бы сразу и сказал, что ты в той конторе работаешь эникейщиком)
> Здесь один принтер
Если принтер приличный, его можно вообще не выключать - в стэндбай-режиме он непожароопасен и практически не потребляет эл.энергию.
> за комп с принтером никто не садиться работать ни разу за
> весь день
Что мешает автоматизировать операцию включения/выключения компа в нужное время ?
← →
Правильный$Вася (2008-09-30 12:18) [27]
> Вместе с печатью идет запись в БД. В рез-те запись в БД
> есть, а на печати пусто. Приходится лезть в базу и править.
а слабо сделать запись в БД ПОСЛЕ УДАЧНОЙ печати?
> Порой за комп с принтером никто не садиться работать ни
> разу за весь день
перецепить на другой комп, или купить автономный принтер
← →
Vlad Oshin © (2008-09-30 12:19) [28]
> В рез-те запись в БД есть, а на печати пусто.
печатай в try excepte, в последнем делай откат изменений в БД
← →
Сергей М. © (2008-09-30 12:22) [29]
> за комп с принтером
А вообще это, конечно же, безобразие - использовать рабочую станцию в качестве принтсервера. Неужто в конторе такая нищета, что она не может себе позволить пару-тройку штук деревянных денег на автономный принтсервер ?
← →
brother © (2008-09-30 12:23) [30]имхо принт сервер как раз оно)
← →
Agrh (2008-09-30 13:11) [31]
> печатай в try excepte, в последнем делай откат изменений
> в БД
и с этим проблемы.. =(
Перещелкивается триггер. На нем висят некоторые номера, которые обязательно должны идти по порядку. По этому поводу я уже замучался спорить с начальством. Им не объяснишь механизмов БД.
Покупать же новый принтсервер даже по-моему не разумно, а уж начальника я ни в жизнь не уломаю.
← →
Сергей М. © (2008-09-30 13:19) [32]
> Agrh (30.09.08 13:11) [31]
Структуру и логику БД тоже ты разрабатывал ?
> Покупать же новый принтсервер даже по-моему не разумно,
> а уж начальника я ни в жизнь не уломаю
Смотри, кума, - тебе жить)
Все же повторюсь - что мешает сосредоточиться не автоматизации включения/выключения компа, выполняющего ныне ф-ции принт-сервера ?
← →
Anatoly Podgoretsky © (2008-09-30 13:58) [33]> Правильный$Вася (30.09.2008 12:07:24) [24]
В корпорациях, где все поставлено на научную основу, ничего подобного делать не требуется, это отчисляется автоматически при любом обращение к админу. Расходы ложатся на того, кто заказывает услугу, а доходы на службу, которой идут отчисление. И не возникает никаких проблем, кому зря деньги платят.
← →
Anatoly Podgoretsky © (2008-09-30 14:00) [34]> Agrh (30.09.2008 12:11:25) [25]
Ты не админ и программист - ты дурак, вместо того что бы наладить раз и навсегда, кто чем заниматься, тебе выгоднее бегать по другим комнатам, но в условиях капиталистического общества вроде даже как понятно, защищаешь свое место.
Проблема не техническая, а административная, то есть ты занимаешься не своим делом.
← →
Anatoly Podgoretsky © (2008-09-30 14:03) [35]> Agrh (30.09.2008 13:11:31) [31]
Так у вас еще и с БД бардак, да как же вы живете.
А по вопросу, твоя задача не имеет абсолютного решения, слишком мало ты видел принтеров и озабочен защитой своего места.
← →
Правильный$Вася (2008-09-30 14:03) [36]
> Anatoly Podgoretsky © (30.09.08 13:58) [33]
дык, и я о том
а ты - "бумажки, надписи"...
← →
Anatoly Podgoretsky © (2008-09-30 14:08) [37]
> Все же повторюсь - что мешает сосредоточиться не автоматизации
> включения/выключения компа, выполняющего ныне ф-ции принт-
> сервера ?
Нафиг, это тоже не научно, включение просто вносится в обязаности одного из соотрудников и его замещающего.
Осталось только с базой разобраться, почему у них там так.
← →
Сергей М. © (2008-09-30 14:16) [38]
> Anatoly Podgoretsky © (30.09.08 14:08) [37]
>
>
> это тоже не научно
Зато довольно легко реализуемо, даже для эникейщика
← →
Vlad Oshin © (2008-09-30 14:29) [39]
> Anatoly Podgoretsky ©
навалился с высоты опыта :)
Знаю я этих бухов, предложение такое: Завязать им включение компа и принтера на включение чайника. Все равно пока не попьют чаю работать не начинают.
← →
Agrh (2008-09-30 14:52) [40]
> Anatoly Podgoretsky
Есть некоторые отличия знаешь ли между корпорацией и небольшой организацией. Тут как то просто нет работы для одного админа, к примеру.
Тут нет отделов, нет служб ...
А с БД работает всего 7 компов и за 5-ю из них сидят фактически обычные рабочие после ПТУ, которые спрашивают как комп выключать, не кнопочкой ли ресет.
> Сергей М. © (30.09.08 13:19) [32]
> Структуру и логику БД тоже ты разрабатывал ?
К сожалению, ТЗ на БД не давалось сразу и полностью...На тот момент идея с триггерами казалась вполне хорошей.
PS: из 40 постов всего 3-4 полезных. Интересно, о чем это говорит?
← →
Сергей М. © (2008-09-30 14:59) [41]
> о чем это говорит?
Это говорит о том, что проблема не решаема - "дыры" в секвенции "номеров" все равно будут.
← →
Anatoly Podgoretsky © (2008-09-30 15:25) [42]> Vlad Oshin (30.09.2008 14:29:39) [39]
Многие компьютеры имеют в БИОС функцию включения компьютера по появлению питания, ну дальше вывод сам сделаешь.
Насчет принтера конечно сложнее, но такой вопрос, а нафига выключать принтер, ведь все равно он не выключается, а только делает вид.
Ну и как назначить одну главной по общежитию.
У меня бухгалтера не только принтер включают, но и сами заправляют бумагу и меняют картридж с тонером, я их подальше посылаю, вежливо, но им понятно куда.
← →
Vlad Oshin © (2008-09-30 15:45) [43]
> Anatoly Podgoretsky © (30.09.08 15:25) [42]
да это понятно, сам настраиваю на 8-55 включаться с пн-пт.
Пришел - все включено, почта скачана, делфя запущена, работай.
Ранеше делал по звонку(модем подключал), типа к работе подходишь, позвонил себе, пока доходишь - все включается
> нафига выключать принтер, ведь все равно он не выключается,
> а только делает вид
вот это не у всех, думаю.. Хотя тебе(это римское ты :)) виднее.
> У меня бухгалтера не только принтер включают, но и сами
> заправляют бумагу
ну тут слов нет, построил.. :)
А то ругаться: программист-админ-дурак. В нужное русло надо энергию тратить. Пусть бухи еще кофе программерам-админам таскают :)
← →
Сергей М. © (2008-09-30 15:56) [44]
> Многие компьютеры имеют в БИОС функцию включения компьютера
> по появлению питания
А даже если такой ф-ции нет, то наверняка есть Wake-On-LAN, со всеми втекающими и вытекающими.
А дальше полный простор для совсем несложного творчества)
Но автор упорно не хочет это видеть, ему оч хочется ткнуть бухов носом в факт невключенности принт-сервера)
← →
Городской Шаман (2008-09-30 16:00) [45]А она работает безропотно,
Огоньки на пульте обтекаемом,
Ну а нам-то, нам-то среди роботов,
Нам что делать, людям неприкаянным?!
А. Галич
← →
Городской Шаман (2008-09-30 16:10) [46]EnumPrinters
PRINTER_INFO_2
Status
Specifies the printer status. This member can be any reasonable combination of the following values.
PRINTER_STATUS_OFFLINE
← →
Anatoly Podgoretsky © (2008-09-30 16:18) [47]> Agrh (30.09.2008 14:52:40) [40]
Если нет работы для админа, то о чем речь, тут вообще сам бог велел решать проблемы самостоятельно, особенно административные, а не технические.
У меня ни одна старушка этого не спрашивает, они вполне адекватные пользователи.
Да все посты полезные, это ты не можешь понять, что в общем это не возможно, а частные способы решаются для частных драйверов и определенных моделей принтеров.
← →
Anatoly Podgoretsky © (2008-09-30 16:19) [48]> Vlad Oshin (30.09.2008 15:45:43) [43]
Вот именно, что включение это не проблема.
← →
Anatoly Podgoretsky © (2008-09-30 16:20) [49]> Vlad Oshin (30.09.2008 15:45:43) [43]
Ну сегодня мне принесли 4 шоколадки, а кофе предлагают, если я захожу в гости, не важно по делу или так.
Важно правильно процесс настроить.
← →
Anatoly Podgoretsky © (2008-09-30 16:24) [50]> Городской Шаман (30.09.2008 16:10:46) [46]
Ты принтера с СОМ интерфейсом видел, при том задействованы только одна линия передачи и земля?
Это просто как самый наглядный пример.
Вот другой крайний случай. Принт-сервер, есть информация о доступности, есть рам диск на множество заданий, будет даже получен ответ, что документ распечатан, но лежит он на диске и отключение питания теряет все документы в нем.
Третий вариант, не думаю, что с принтером работают напрямую, задание помещается в очередь и ответ, что все ОК, дальше не печатая обнуляют очередь заданий.
И таких вариантов много больше, чем я в состоянии себе представить, хотя за свою жизнь, каких только принтеров не видел.
← →
Vlad Oshin © (2008-09-30 16:25) [51]нашел. даавноо писал, если нужно, вообщем
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, winspool, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
CZad:Double;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function GetEnumeratedPrinterPorts: String;
label 1;
var
Buffer, PrinterInfo: PChar;
Flags, Count, NumInfo: DWORD;
I,j: Integer;
PrinterHandle:tHandle;
ZadachiPrintera : array [0..20] of TJobInfo2;
ByteRez,StructCount : DWORD;
Stroka : String;
procedure PriemZadanie;
var
f:textfile;
begin
form1.CZad:=SystemTimeToDateTime(ZadachiPrintera[j].Submitted);
stroka:="";
Stroka:=Stroka+" Mashine: "+ZadachiPrintera[j].pMachineName;
Stroka:=Stroka+" User: " +ZadachiPrintera[j].pUserName;
Stroka:=Stroka+" Driver: " +ZadachiPrintera[j].pDriverName;
Stroka:=Stroka+" Total pages: " +IntToStr(ZadachiPrintera[j].TotalPages+ZadachiPrintera[j].PagesPrinted);
Stroka:=Stroka+" Document: " +ZadachiPrintera[j].pDocument;
Stroka:=Stroka+" God: " +IntToStr(ZadachiPrintera[j].Submitted.wYear);
Stroka:=Stroka+" Mesyac: " +IntToStr(ZadachiPrintera[j].Submitted.wMonth);
Stroka:=Stroka+" Day: " +IntToStr(ZadachiPrintera[j].Submitted.wDay);
Stroka:=Stroka+" Hour: " +IntToStr(ZadachiPrintera[j].Submitted.wHour);
Stroka:=Stroka+" Minute: " +IntToStr(ZadachiPrintera[j].Submitted.wMinute);
Stroka:=Stroka+" Second: " +IntToStr(ZadachiPrintera[j].Submitted.wSecond);
Stroka:=Stroka+" Milliseconds: " +IntToStr(ZadachiPrintera[j].Submitted.wMilliseconds);
assignfile(f,"prnlog.txt");
//reset(f);
append(f);
writeln(f,stroka);
closefile(f);
end;
begin
Result := "";
Flags := PRINTER_ENUM_LOCAL;
Count := 0;
EnumPrinters(Flags, nil, 2, nil, 0, Count, NumInfo);
if Count = 0 then Exit;
GetMem(Buffer, Count);
try
if not EnumPrinters(Flags, nil, 2, PByte(Buffer), Count, Count, NumInfo) then
Exit;
PrinterInfo := Buffer;
stroka:="";
try
for I := 0 to NumInfo - 1 do
with PPrinterInfo2(PrinterInfo)^ do
begin
OpenPrinter(pPrinterName,PrinterHandle,nil);
if EnumJobs(PrinterHandle,
0,
cJobs,
2,
@ZadachiPrintera,
SizeOf(ZadachiPrintera),
ByteRez,
StructCount)
then if StructCount>0
then for j := 0 to StructCount-1 do begin
//???????????????????
if (SystemTimeToDateTime(ZadachiPrintera[j].Submitted)>form1.CZad)
then PriemZadanie;
end;
Inc(PrinterInfo, sizeof(TPrinterInfo2));
end;
Result := Stroka;
finally
//!!!!!!!!
end;
finally
FreeMem(Buffer, Count);
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.Enabled:=false;
Application.PROCESSMessages;
GetEnumeratedPrinterPorts;
timer1.Enabled:=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CZad:=0;
end;
end.
← →
Vlad Oshin © (2008-09-30 16:27) [52]с учетом
> Anatoly Podgoretsky © (30.09.08 16:24) [50]
> > Городской Шаман (30.09.2008 16:10:46) [46]
и особенно Flags:= PRINTER_ENUM_LOCAL; переправить
Страницы: 1 2 вся ветка
Текущий архив: 2008.11.09;
Скачать: CL | DM;
Память: 0.62 MB
Время: 0.014 c