Текущий архив: 2008.11.09;
Скачать: CL | DM;
Вниз
Как определить что сетевой принтер включен? Найти похожие ветки
← →
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.57 MB
Время: 0.013 c