kapiaba Posted November 12, 2008 Report Share Posted November 12, 2008 Galera alguém testou esta postagem do Rochinha? http://fivetechsoft.com/forums/viewtopic.php?t=11418&start=0&postdays=0&postorder=asc&highlight=function+isprint João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 12, 2008 Author Report Share Posted November 12, 2008 Galera alguém testou esta postagem do Rochinha? http://fivetechsoft.com/forums/viewtopic.php?t=11418&start=0&postdays=0&postorder=asc&highlight=function+isprint João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
sygecom Posted November 12, 2008 Report Share Posted November 12, 2008 Eu fiz uns teste, mas em alguns testes me retornou que a impressora não estava instalada, mas estava e se ignorava a mensagem ele imprime sem problema. Por enquanto abortei os testes. Leonardo Machado Porto Alegre-RS Hwgui + Mysql / xHarbour 1.0.0 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 13, 2008 Author Report Share Posted November 13, 2008 citação:Eu fiz uns teste, mas em alguns testes me retornou que a impressora não estava instalada, mas estava e se ignorava a mensagem ele imprime sem problema. Por enquanto abortei os testes. Leonardo Machado Porto Alegre-RS Hwgui + Mysql / xHarbour 1.0.0 id=quote>id=quote>Leonardo, este programa não é de autoria do Rochinha?? Tens como entrar em contacto com ele e reportar os erros, para ver a opinião dele? Abraços. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted November 13, 2008 Report Share Posted November 13, 2008 Esta Aqui é boa.. Luiz Arruda FWH24-WS-xHB 9950-xDev ico.corumba@gmail.com Quote Link to comment Share on other sites More sharing options...
rochinha Posted November 13, 2008 Report Share Posted November 13, 2008 citação:Esta Aqui é boa.. id=quote>id=quote>ICO. Será que devo cobrar Royalties? citação:Galera alguém testou esta postagem do Rochinha? id=quote>id=quote>Eu uso esta função em meus sistemas, fiz testes inclusive com impressoras virtuais e uma HP USB para ver o retorno e usar ou não. O codigo na realidade estava em algum exemplo para xHarbour, então traduzi os DEFINES para o bloco IF..ENDIF e transformei em uma função de uso geral. Mas qual o problema que voce relatou? Devo lembra-los que uso o Harbour 45. Editado por - rochinha on 13/11/2008 11:58:11 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 13, 2008 Author Report Share Posted November 13, 2008 citação: citação:Esta Aqui é boa.. id=quote>id=quote>ICO. Será que devo cobrar Royalties? citação:Galera alguém testou esta postagem do Rochinha? id=quote>id=quote>Eu uso esta função em meus sistemas, fiz testes inclusive com impressoras virtuais e uma HP USB para ver o retorno e usar ou não. O codigo na realidade estava em algum exemplo para xHarbour, então traduzi os DEFINES para o bloco IF..ENDIF e transformei em uma função de uso geral. Mas qual o problema que voce relatou? Devo lembra-los que uso o Harbour 45. Editado por - rochinha on 13/11/2008 11:58:11 id=quote>id=quote>Rochinha, podes mostrar um exemplo completo na prática? Obrigado. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
sygecom Posted November 13, 2008 Report Share Posted November 13, 2008 citação: citação:Esta Aqui é boa.. id=quote>id=quote>ICO. Será que devo cobrar Royalties? citação:Galera alguém testou esta postagem do Rochinha? id=quote>id=quote>Eu uso esta função em meus sistemas, fiz testes inclusive com impressoras virtuais e uma HP USB para ver o retorno e usar ou não. O codigo na realidade estava em algum exemplo para xHarbour, então traduzi os DEFINES para o bloco IF..ENDIF e transformei em uma função de uso geral. Mas qual o problema que voce relatou? Devo lembra-los que uso o Harbour 45. Editado por - rochinha on 13/11/2008 11:58:11 id=quote>id=quote>Olá Rochinha, O Problema que em meus teste, ele considera que a impressora PDF CREATOR não esta instalada. Leonardo Machado Porto Alegre-RS Hwgui + Mysql / xHarbour 1.0.0 Quote Link to comment Share on other sites More sharing options...
rochinha Posted November 13, 2008 Report Share Posted November 13, 2008 Aqui: Codigo: #include "FiveWin.ch" Function main() aArray := GetPrinters() for i = 1 to len(aArray) cPrinterName := substr( aArray, 1, at( ",", aArray)-1 ) ? "A impressora " + cPrinterName, IsPrint( alltrim( cPrinterName ) ) 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 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 Bandeja" 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 OffLine" 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" 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" endif id=code>id=code>Link http://www.5volution.com/forum/kapiaba.zip Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 13, 2008 Author Report Share Posted November 13, 2008 citação:Aqui: Codigo: #include "FiveWin.ch" Function main() aArray := GetPrinters() for i = 1 to len(aArray) cPrinterName := substr( aArray, 1, at( ",", aArray)-1 ) ? "A impressora " + cPrinterName, IsPrint( alltrim( cPrinterName ) ) 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 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 Bandeja" 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 OffLine" 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" 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" endif id=code>id=code>Link http://www.5volution.com/forum/kapiaba.zip id=quote>id=quote>ValeW garoto, obrigado! Dúvida: Posso trocar esta FUNCAO ISPRINT() POR ISPRINTER() DO XHARBOUR?? O que achas?? Abraços. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
rochinha Posted November 13, 2008 Report Share Posted November 13, 2008 Nunca testei com a mesma, mas se ela reportar os mesmos codigos vale a pena verificar. o que importa é funcionar. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 17, 2008 Author Report Share Posted November 17, 2008 Galera, bom dia... Alguém tem a SINTAXE do FUNÇÃO ISPRINTER() do CLIPPER? Queria dar uma comparada... Abraços João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted November 17, 2008 Report Share Posted November 17, 2008 Tirado do Manual do Clipper 5.2 ISPRINTER( ) Propósito:Testar se a impressora conectada na LPT1 está pronta para impressões. Sintaxe: ISPRINTER( ). Exemplo: : RESPOSTA := "S" @ 22,10 SAY "CONFIRMA SAÃDA DO RELATÓRIO...:" GET RESPOSTA READ IF .NOT. ISPRINTER( ) // verifica se a impressão não se // encontra pronta. @ 23,10 SAY "IMPRESSÃO NÃO PRONTA" TONE(300,1) // emite um som INKEY(3) // aguarda três segundos LOOP // sobe até a linha do DO WHILE ENDIF REPORT FORM RELFOLHA TO PRINT // saÃda do relatório. id=code>id=code>Abraços.. Luiz Arruda FWH24-WS-xHB 9950-xDev ico.corumba@gmail.com Editado por - ico on 17/11/2008 10:11:14 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 17, 2008 Author Report Share Posted November 17, 2008 Sintaxe: ISPRINTER( ). BOA, MUITO BOA!!! KKKKKKKKKKK É POR ESTAS E OUTRAS, QUE SEMPRE USEI CLIPPER 5.3B. Obrigado Luiz, o que quero, é a SINTAXE INTERNA DO COMANDO. O que a funçao faz, eu SAY. Mesmo assim, valew() Abraços. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
oribeiro Posted February 28, 2014 Report Share Posted February 28, 2014 Estou com esse mesmo problema com o IsPrinter() Vez por outra ele retorna .F., mesmo tendo uma impressora instalada. Espero alguns segundos SysWait(1) e tento novamente e ele retorna .T. Muuuuito estranho! Então, substitui pela função: // Verifica se tem impressora instalada no MS-Windows -> Substitui a função IsPrinter() // // Na visualização essa rotina não é necessária porque o FWH já checa se tem impressoras. // PRINT oPrn if Empty( oPrn:hDC ) MsgStop("Não encontrei nenhuma impressora instalada no seu MS-Windows ou não está ligada!" + CRLF + CRLF + ; "É necessário ter pelo menos uma impressora configurada no MS-Windows para visualizar ou imprimir relatórios no sistema.",; "(OASyS) Relatórios - ATENÇÃO: Verifique a impressora.") Return (.F.) endif ENDPRINT Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 28, 2014 Author Report Share Posted February 28, 2014 Em harbour, eu acho que é: HB_IsPrinter() ou FT_IsPrint(). Exemplo: IF ! ft_IsPrint() ? "PRN is not ready!" ENDIF IF ! ft_IsPrint( "COM2" ) ? "Check the device on COM2. Something is wrong." ENDIF IF ! ft_IsPrint( "/dev/lp0" ) ? "Oops, not available." ENDIF Link: http://harbour.github.io/doc/ Em xHarbour: oPrn:= GetPrinters() oPrn retorna um array com o nome das impressoras instaladas, se for passado o parametro <lPorts> como .T. um 2º array sera retornado {Nome da impressora, Porta da Impressora} cPrinter := GETDEFAULTPRINTER() Retorna o nome da impressora padrão. XISPRINTER() Não encontrei informações, mas creio que seja uma especie de SPRINTER() adequado ao SO Windows. ? PRINTEREXISTS("HP LaserJet 1200 Series PCL") Retorna .T. se a impressora passada estiver instalada. IF EMPTY( PRINTERPORTTONAME( "lpt1", .T. ) ) Alert( "No printer installed - cannot continue" ) QUIT ENDIF Pode ser passado uma porta COM tambem. em xharbour\doc existem documentos.txt dos quais podem ser geradas a documentação do xharbour, tem uns .BATS que fazem isso. De uma olhadinha. Um exemplo: FUNCTION CHECAIMP(cLPT) LOCAL lVOLTA := .F., lLPT_VALID := .F., lLPTMAPOK := .F. ,; cLPT_LIDA, cLPT_STATUS, cLPT_MAP cLPT := UPPER(STRTRAN(cLPT,':')) IF LEN(cLPT)==1 IF VAL(cLPT)>=1 .AND. VAL(cLPT)<=3 cLPT := 'LPT'+cLPT ENDIF ENDIF IF cLPT $ 'LPT1|LPT2|LPT3' lLPT_VALID := .T. ENDIF IF lLPT_VALID cCOMANDO := 'NET USE > NETIMP' + RIGHT(cNETNAME,2) +'.TXT' !(cCOMANDO) IF FILE('NETIMP' + RIGHT(cNETNAME,2) +'.TXT') HANDLE = FOPEN('NETIP'+cVOLTA+'.TXT') WHILE .NOT. FEOF(HANDLE) TEMP = FREADLINE(HANDLE) IF ' LPT'$TEMP cLPT_STATUS := UPPER(TOKEN(TEMP,' ',1)) cLPT_LIDA := UPPER(TOKEN(TEMP,' ',2)) cLPT_MAP := UPPER(TOKEN(TEMP,' ',3)) IF 'DESCON'$cLPT_STATUS lLPTMAPOK := NETREDIR(cLPT_LIDA+":",cLPT_MAP) ENDIF IF cLPT$cLPT_LIDA .AND. lLPTMAPOK lVOLTA := .T. ENDIF ENDIF ENDDO FCLOSE(HANDLE) ELSE lVOLTA := ISPRINTER() ENDIF ELSE DBOX('Porta de Impressora Invalida: '+cLPT) lVOLTA := .F. ENDIF RETURN (lVOLTA) Quote Link to comment Share on other sites More sharing options...
oribeiro Posted February 28, 2014 Report Share Posted February 28, 2014 Descobri essa função dentro do Printer.prg que funciona legalzinha: ComDlgXErr() Não achei a documentação dela, mas detecta se tem impressora instalada ou não no Windows. // Verifica se tem impressora instalada no MS-Windows -> Substitui a função IsPrinter() // // Na visualização essa rotina não é necessária porque o FWH já checa se tem impressoras. // if ComDlgXErr() != 0 MsgStop("Não estou conseguindo me conectar à sua impressora para iniciar o processo de "+iif(lTela,"visualização.","impressão.") + CRLF + CRLF + ; "Por favor, verifique se a impressora está instalada corretamente no seu MS-Windows." + CRLF + CRLF + ; "É necessário ter pelo menos uma impressora configurada no MS-Windows para "+iif(lTela,"visualizar","imprimir")+" relatórios no sistema.",; "(OASyS) Relatórios - ATENÇÃO: Verifique a impressora.") lRet := .F. endif Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 28, 2014 Author Report Share Posted February 28, 2014 O bom da bagça, é que não falta alternativa: isprint.c http://searchcode.com/codesearch/view/4476297 / * * $ Id: isprint.c 7892 2007-11-01 16:03:54 Z druzus $ * / / * * Código fonte Harbour Projeto: Função * ISPRINTER () * * Copyright 1999-2007 Viktor Szakats <viktor.szakats@syenar.hu> * Www - http://www.harbour-project.org * * Este programa é software livre, você pode redistribuí-lo e / ou modificá- * Sob os termos da GNU General Public License conforme publicada pela * Free Software Foundation, versão 2, ou (a seu critério) * Qualquer versão posterior. * * Este programa é distribuído na esperança de que ele possa ser útil, Mas SEM NENHUMA GARANTIA, nem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A UM DETERMINADO FIM. Veja o * Licença Pública Geral GNU para obter mais detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU * Junto com este programa, veja a cópia de ficheiros. Se não, escreva para * A Free Software Foundation, Inc., 59 Temple Street, Suite 330, * Boston, MA 02111-1307 EUA (ou visite o http://www.gnu.org/ site). * * Como uma exceção especial, o Projeto Harbour dá permissão para * usos adicionais do texto contido em sua versão de Harbour. * * A exceção é que, se você ligar as bibliotecas Porto com outro * Arquivos para produzir um executável, isso não, por si só fazer com que o * Resultando executável a ser cobertos pela Licença Pública Geral GNU. * O uso do executável que não é de forma restrita por conta de * Ligando o código da biblioteca Harbour nele. * * Esta excepção, contudo, não invalida quaisquer outros motivos * O arquivo executável pode ser cobertos pela Licença Pública Geral GNU. * * Esta excepção aplica-se apenas ao código liberado pelo Porto * Projeto sob o nome Harbour. Se você copiar o código de outro * Harbour Projeto ou Free Software Foundation lança em uma cópia de * Porto, como as licenças General Public License, a exceção não * Não se aplica ao código que você adiciona dessa maneira. Para evitar enganosa * Ninguém quanto ao status de tais arquivos modificados, você deve excluir * Este aviso exceção deles. * * Se você escrever modificações de seu próprio para Harbour, a escolha é sua * Se permitir essa exceção para aplicar às suas modificações. * Se você não deseja que, apague este aviso de exceção. * * / # Include "hbapi.h" # Include "hbapifs.h" HB_EXPORT BOOL hb_printerIsReady (char * pszPrinterName) { BOOL bIsPrinter; # If defined (HB_OS_DOS) / * NOTA: solução específica DOS, usando interrupção BIOS * / { USHORT uiPort; if (pszPrinterName == NULL) pszPrinterName = "LPT1"; if (hb_strnicmp (pszPrinterName, "PRN", 3) == 0) { união REGS regs; . regs h ah = 2.; . regs HB_XREGS dx = 0;. / * LPT1 * / HB_DOS_INT86 (0x17, & regs, & regs); bIsPrinter = (regs. h ah == 0x90.); } else if (strlen (pszPrinterName)> = 4 && hb_strnicmp (pszPrinterName, "LPT", 3) == 0 && (UiPort = atoi (pszPrinterName + 3))> 0) { união REGS regs; . regs h ah = 2.; . regs HB_XREGS dx = uiPort - 1.; HB_DOS_INT86 (0x17, & regs, & regs); bIsPrinter = (regs. h ah == 0x90.); } outro bIsPrinter = false; } # Elif defined (HB_OS_WIN_32) / * NOTA: Plataforma método independente, pelo menos, ele irá compilar e executar em qualquer plataforma, mas o resultado pode não ser o esperado, desde Unix / Linux não suporta LPT / COM por natureza, outros SOs pode não refletir a presença física da impressora quando tentando abri-la, uma vez que estamos a falar para o spooler. [Vszakats] * / { Fhandle fhnd; if (pszPrinterName == NULL) pszPrinterName = "LPT1"; fhnd = hb_fsOpen ((BYTE *) pszPrinterName, FO_WRITE | FO_SHARED | FO_PRIVATE); bIsPrinter = (fhnd = FS_ERROR!); hb_fsClose (fhnd); } # Else { / * TODO * / HB_SYMBOL_UNUSED (pszPrinterName); bIsPrinter = false; } # Endif voltar bIsPrinter; } HB_FUNC (HB_ISPRINTER) { hb_retl (hb_printerIsReady (hb_parc (1))); } / * NOTA: O parâmetro é um XBase + + extensão ao longo do CA-Cl * pper. [Vszakats] * / HB_FUNC (ISPRINTER) { # Ifdef HB_COMPAT_XPP HB_FUNC_EXEC (HB_ISPRINTER); # Else hb_retl (hb_printerIsReady (NULL)); # Endif } kkkkkkkkkkkkkkkkkk Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 28, 2014 Author Report Share Posted February 28, 2014 C:\FWH..\SOURCE\WINAPI\printdc.c abs, Quote Link to comment Share on other sites More sharing options...
oribeiro Posted February 28, 2014 Report Share Posted February 28, 2014 Vou tentar com o ComDlgXErr() porque é o que o Linares usa na classe Printer.Prg, mas se der problema em algum cliente verificarei as outras opções que você postou aqui. Obrigado. Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 1, 2014 Report Share Posted March 1, 2014 Isprinter() A funçãi retorna (.T.) se a impressora conectada ao computador na porta LPT1, estiver em linha e pronta para imprimir. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 5, 2014 Author Report Share Posted March 5, 2014 Isprinter() A funçãi retorna (.T.) se a impressora conectada ao computador na porta LPT1, estiver em linha e pronta para imprimir. Crisvam, se a impressora estiver instalada, e desligada, ele retorna .T. o que não é possivel controlar se ela está fora de linha. Só retorna .F., se ela não estiver instalada, o que não está correto. Deveria avisar que não está LIGADA, a função que o rochinha postou seria a ideal, pois avisa se não está ligada, mas não funciona corretamente. abs, Quote Link to comment Share on other sites More sharing options...
crisvam Posted March 6, 2014 Report Share Posted March 6, 2014 Você deve elaborar a mensagem: Algo assim: If !Isprinter() MsgInfo("A impressora não está conectada a porta LPT1 ou está desligada","Sistema: Informa") Return Endif kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 6, 2014 Author Report Share Posted March 6, 2014 Crisvam, você não entendeu, esta mensagem somente entrará, se não existir uma impressora instalada na pasta de impressoras do rWindows, Se existir e estiver desligada, o IsPrinter() não retorna .F., entende?? Você deve elaborar a mensagem: Algo assim: If !Isprinter() MsgInfo("A impressora não está conectada a porta LPT1 ou está desligada","Sistema: Informa") Return Endif abs, Quote Link to comment Share on other sites More sharing options...
microvolution Posted February 21, 2016 Report Share Posted February 21, 2016 Olá kapiaba boa noite! desde que migrei de clipper para harbour (janeiro/2015) também, como todos perceberam que a função ISPRINTER(), bem como as novas funções modernas do harbour não informam corretamente o estado da impressora matricial (on/off line), como você muito bem explanou... então no fórum pctoledo.com.br/forum e também no fórum oficial do harbour no google groups onde o Viktor Szakats participa, dentre outros, criadores, mantenedores, desenvolvedores do harbour estão... aí o próprio Viktor me respondeu, com esta função desenvolvida por ele mesmo entre 1999-2007 que chama-se "ISPRINT.C" - a qual você a reportou aqui, traduzindo-a até mesmo para o português. Bom, mas, uma coisa nem o Viktor e nem V.Sa. ensina como chamá-la no nosso código fonte .PRG, pois o harbour já tem nativo a função ISPRINT() também dentro de uma de suas LIBs. Então, prezado, como colocar, chamar e usar esta função em C++ no nosso código em harbour? Qual sua sintaxe? grato! MVinfo - W de Paula. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.