Compañeros,
necesito hacer un array con los puertos de las impresoras que tenga instalada, o al menos obtener el puerto de una impresa en concreto.
Con PrnGetPort() obtengo el puerto de la impresora predeterminada, pero ¿Como obtengo de una en concreto?
Probé con msginfo(PrnGetPort(cimpresora)), pero por defecto siempre me muestra el puerto de la impresora predeterminada.
¿Alguna alma caritativa?
Gracias.
Lorenzo.
Componer un array con los puertos de impresora instaladas
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Componer un array con los puertos de impresora instaladas
Has probado a seleccionar la que te interesa y luego llamar a PrnGetPort() ?
Re: Componer un array con los puertos de impresora instaladas
Mira se ayuda:
Code: Select all
Function STATUS_DA_IMPRESSORA()
aArray := GetPrinters( .T. )
If Empty( aArray )
Alert( "Nenhuma impressora Instalada", "Atencao" )
Return Nil
Endif
for i = 1 to len(aArray)
cPrinterName := substr( aArray[i], 1, at( ",", aArray[i])-1 )
MsgInfo( ( "A Impressora " + cPrinterName )+CRLF+ ;
+CRLF+ ;
IsPrint( alltrim( cPrinterName ) ), ;
OemToAnsi( "Aten‡Æo Usu rio" ) )
next
Return nil
Function GetPrinters()
Local aPrinter := {}
Local cAllEntries
Local cEntry
Local nStart
Local cName
Local cPrn
Local cPort
Local nJ
cAllEntries := STRTRAN( GetProfString( "Devices" ), Chr( 0 ), CRLF )
For nStart := 1 To MlCount( cAllEntries )
cName := MemoLine( cAllEntries,,nStart)
cEntry := GetProfString( "Devices",cName,"")
nJ := 2
Do While ! Empty(cPort := StrToken(cEntry,nJ++,","))
Aadd(aPrinter,Trim(cName)+" , "+Trim(cPort))
EndDo
Next
Return(aPrinter)
function IsPrint( QuePrinter )
LOCAL nStatus
DEFAULT QuePrinter := "LPT1:"
nStatus := PrnStatus( QuePrinter )
if nStatus < 1 ; return "Impressora Esta Funcionando OK"
elseif nStatus = 1 ; return "Impressora Pausada"
elseif nStatus = 2 ; return "Impressora com Erro"
elseif nStatus = 4 ; return "Impressora Deletando"
elseif nStatus = 8 ; return "Impressora em Modo Bandeija"
elseif nStatus = 16 ; return "Impressora Sem Papel"
elseif nStatus = 32 ; return "Impressora em Modo Manual"
elseif nStatus = 64 ; return "Impressora com Problema no Papel"
elseif nStatus = 128 ; return "Impressora Off Line(Desligada)"
elseif nStatus = 256 ; return "Impressora com IO Ativo"
elseif nStatus = 512 ; return "Impressora Ocupada"
elseif nStatus = 1024 ; return "Impressora Imprimindo"
elseif nStatus = 2048 ; return "Impressora Memoria Lotada"
elseif nStatus = 4096 ; return "Impressora Nao Instalada"
elseif nStatus = 8192 ; return "Impressora Aguardando"
elseif nStatus = 16384 ; return "Impressora Processando"
elseif nStatus = 32768 ; return "Impressora Inicializando"
elseif nStatus = 65536 ; return "Impressora em Atencao"
elseif nStatus = 131072 ; return "Impressora Toner Baixo"
elseif nStatus = 262144 ; return "Impressora Sem Toner"
elseif nStatus = 524288 ; return "Impressora PAGE_PUNT(Ineficinte)"
elseif nStatus = 1048576 ; return "Impressora Intervencao do Usuario"
elseif nStatus = 2097152 ; return "Impressora Sem Memoria"
elseif nStatus = 4194304 ; return "Impressora Tampa Aberta"
elseif nStatus = 8388608 ; return "Impressora Servidor Desconhecido"
elseif nStatus = 16777217 ; return "Impressora POWER_SAVE(Poupando Energia)"
endif
RETURN ( nStatus )
João Santos - São Paulo - Brasil
Re: Componer un array con los puertos de impresora instaladas
Buenas,
Antonio: Ya lo intenté, pero al restituir a la impresora original (tal y como se indica en otros hilos de este foro) e intentar imprimir cualquier documento, me genera un error por NO tener ninguna impresora en windows como predeterminada.
Karina: Gracias. Investigaré
Un saludo.
LORENZO.
Antonio: Ya lo intenté, pero al restituir a la impresora original (tal y como se indica en otros hilos de este foro) e intentar imprimir cualquier documento, me genera un error por NO tener ninguna impresora en windows como predeterminada.
Karina: Gracias. Investigaré
Un saludo.
LORENZO.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Componer un array con los puertos de impresora instaladas
Loren,
Puedes proporcionar un PRG de ejemplo de cómo lo has intentado ? gracias
Puedes proporcionar un PRG de ejemplo de cómo lo has intentado ? gracias