|
Usuários |
|
52 Usuários Online
|
|
[Artigos]
Verificando as impressoras pela rede e sabendo se elas estão online |
Publicado por Admin : Sexta, Janeiro 28, 2005 - 05:06 GMT-3 (7283 leituras)
3 Comentários Enviar para um amigo Versão para impressão
|
Como verificar quais são as impressoras da rede e se elas estão On-line Com essa dica eu ajudei no fórum esta semana o Ronaldo, mas creio que como artigo, devo conseguir ajudar mais. Em vários projetos, saber se a impressão será efetuada com sucesso, e se a impressora estiver em rede e o computador que ela estiver ligada estiver sendo reiniciado, por exemplo, ou houver algum problema com a rede, talvez seja melhor dar um aviso ao usuário e esperar que ele regularize a situação antes de efetuar a impressão... Com
esta rotina abaixo, você consegue efetivamente tanto em Windows 98 quanto em
Xp, obter uma resposta confiável da impressora.
function
VerImpressoraONLINE: Cardinal;
var
hPrinter
: THandle;
pInfo:
PPrinterInfo2;
bytesNeeded: DWORD;
begin
hprinter := GetCurrentPrinterHandle;
try
Winspool.GetPrinter(
hPrinter, 2, Nil, 0, @bytesNeeded );
pInfo := AllocMem(
bytesNeeded );
try
Winspool.GetPrinter(
hPrinter, 2, pInfo, bytesNeeded, @bytesNeeded );
Result
:= pInfo^.Status;
finally
FreeMem(
pInfo );
end;
finally
ClosePrinter( hPrinter
);
<span style="font-family:
Arial">end;
end;
se o resultado for > 0 então a impressora
tem algum tipo de problema.
If
VerImpressoraONLINE > 0
then ShowMessage('A Impressora está OFFLINE, impressão ficará no aguardo'
+ #13 + 'Chame o Suporte Técnico
para verificar a Impressora' );
Para
verificar quais são as impressoras da sua rede, teste da seguinte forma:
var
ts : TStrings;
J, K, I
: Integer;
begin
TS := Printer.Printers;
K := Printer.PrinterIndex;
J := -1;
For I := 0 to TS.Count
-1
do If uppercase(copy(TS.Strings[I],1,7)) = 'EPSON'
then J := I;
If J = -1
then begin
ShowMessage('Impressora do estoque não configurada');
Exit;
end
else begin
Printer.PrinterIndex := J;
If VerImpressoraONLINE > 0
then ShowMessage('A Impressora EPSON está OFFLINE, impressão ficará no
aguardo' + #13 + 'Chame o Suporte
Técnico para verificar a Impressora' );
end;
Espero
ter ajudado, se alguém tiver mais alguma dúvida o meu e-mail é mgrasser@bol.com.br
ou poste no Fórum.
Mauricio Grasser
Observação: Por: Mauricio Grasser - mgrasser@bol.com.br
|
|
Comentários | |
| | Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
por: mgrasser : Fev 11, 2005 - 11:00 (Informações sobre o membro | Enviar uma mensagem)
http://
|
Parece que esqueci de colocar que no Uses é necessário:
Printers, Winspool;
e a linha
não deveria estar aí, é erro na onversão para html
ficou faltando a funções adicional abaixo
function GetCurrentPrinterHandle: THandle;
function GetCurrentPrinterHandle: THandle;
var
Device, Driver, Port : array[0..255] of char;
hDeviceMode: THandle;
begin
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
if not OpenPrinter(@Device, Result, nil) then
RaiseLastWin32Error;
end;
|
por: bruno.prestes : Set 05, 2005 - 01:58 (Informações sobre o membro | Enviar uma mensagem)
|
amigo não estou entendendo muito bem seu artigo peço que se você poder me enviar um passo-a-passo mais explicadinho eu lhe agradeço!!!
A vida profissional de um programador depende de um fator: a troca de informações!!!
|
por: rivaldots : Out 13, 2005 - 11:28 (Informações sobre o membro | Enviar uma mensagem)
http://
|
Legal, gostei do artigo. Eu estou procurando isso há tempos.
Minha idéia é um pouco além disso. É que se a impressora estiver offline e o usuário mandar alguma impressão, ela vai ficar marcada como offline no micro Client até que alguém vá até a propriedade da impressora e desmarque.
Eu queria fazer um programa que ficasse no tray, monitorando as impressoras remotas dos usuários e se por algum acaso a mesma estiver off-line tentar colocá-la online após x minutos, e este tempo vai aumentando até ficar de hora em hora.
Outras enfeites, tais como mudar a cor do ícone no tray, exibir as impressoras offline ao apontar par o ícone, etc ficaria para depois.
Você pode me ajudar nessa. Este artigo já vai ser 50% do que preciso.
Rivaldo.
|
|
|
Edição 112 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|