La Web del Programador: Comunidad de Programadores
 
    Pregunta:  44891 - ISPRINTER() EN W2000/XP
Autor:  Diego Leonardo Morano
Hola a todos tengo un programa de administracion de empresas echo en clipper cuya vigencia es de mas io menos 14 años, la verdad es que es un programa estable y funciona muy bien, pero ahora lo tengo que instalar en sistemas operatios como w2000 y xp y la funcion ispronter() siempre me da .t., y detecta que la impresora esta en línea siempre, alguien conoce algun truco para validar esto... mis líneas de programa son simples acá las transcribo, este programa es multiusuario y funciona desde la epoca de novell para DOS.... y ahora con s o w9x.
Gracias.

do whil .t.
opc_imp="S"
if !isprinter() &&me devuelve SIEMPRE .T.
errado()
@24,00 clea
setcolor("gr+")
@24,20 say "Posee impresora su equipo ? (S/N)" get opc_imp pict "@!" valid(opc_imp$"SN")
setcolor("w")
read
if lastkey()=27 .or. opc_imp="N"
mens("Los listados por impresora se dirigir n al archivo LISTADOS.TXT..")
set prin to listados.doc
exit
else
decir("error",1)
mens("Coloque la impresora en l¡nea...")
loop
endi
endi
//SETEA LA IMPRESORA Y PONE EL LARGO DE PAGINA A 12 PULGADAS
set prin on
set cons off
??chr(27)+chr(64)
??chr(27)+chr(67)+chr(0)+chr(12)
set prin off
set cons on
exit
enddo
@24,00 clea

  Respuesta:  HENRY NUÑEZ
Estimado amigo, despues de analizar su segmento de programa veo que esta todo bien, no es necesario o mejor dicho no hay que hacerle modificaciones a tu programa y mas aun cuando has tenido un buen tiempo probandolo en otra version de windows.
El problema lo tiene precisamente la version de windows a la cual te cambiaste, la cual requiere de instalar la impresora con requerimiento para DOS y esto se logra borrando el icono de impresora e instalarla de nuevo y en la pregunta, xxxxxx para DOS le dices que si, y eso es todo mi querido amigo, espero haberte resuelto el problema y si no estamos a la orden, por favor escribeme.

Logradohenry@hotmaniel.
Henry Nuñez