Página 1 de 1

Função PegaPrinter definir sequencia de impressoras

Enviado: 25 Abr 2017 08:12
por porter
olá pessoal, a rotina abaixo, baixei aqui do fórum, ela mostra em um Achoice, uma sequência de impressoras instaladas,
gostaria de saber, se tem como mudar a ordem das impressoras instaladas em Dispositivos e Impressoras no windows 7.
Quero definir qual a sequencia de impressora que o usuario desejar pois se mudar a sequencia em Dispositivo e Impressoras a rotina abaixo não
seque a mesma sequência.
Obrigado.

Código: Selecionar todos

Function PegaPrinter()  // seleciona impressora
      Local i, nPrn := 1, oPrn, nMaxLen := 0, aPNomes := {}
      Local cPrinter := "", aPrn := GetPrinters( .t. )
      Local cPrinDefault := GetDefaultPrinter()
      SAVE SCREEN
      If Empty( aPrn )
         Alert( "Nenhuma impressora Instalada" )
         Return ( cPrinter )
      Endif
      For i=1 To Len( aPrn )
         AaDd( aPNomes , aPrn[i,1] )
         nPrn := If( aPrn[i,1] = cPrinDefault, i, nPrn )
         nMaxLen := If( Len( aPrn[i,1] ) > nMaxLen, Len( aPrn[i,1] ), nMaxLen )
      Next
      Clear Screen
	  @ 0,0 say Version()
      nPrn := AChoice( 3, 10, Len( aPNomes )+3, nMaxLen+10, aPNomes, .T., Nil , nPrn )
      If nPrn = 0
         RESTORE SCREEN
         Return ( cPrinter )
      Endi
      cPrinter := Alltrim( aPNomes[nPrn] )
	  RESTORE SCREEN
      Return ( cPrinter )