USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Set Printer = Printers(n) 'não funciona. Por quê?
Eh Nhois
SAO PAULO
SP - BRASIL
Postada em 08/08/2007 16:53 hs         
Estou tentando usar este comando (Set Printer = Printers(n)) para mudar a impressora padrão mas não está funcionando. Não apresenta nenhuma mensagem. Em tempo de execução funciona, mas quando saio do programa a impressora não muda.
 
Trabalho com VB6 - SP6
 
Desde já agradeço.
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 08/08/2007 17:02 hs            
Olhe o que tenho, preencho uma combo com o nome de todas as impressoras instaladas:
 
Dim nrIMPRESSORA As Printer
 
cboIMPRIME.Clear
cboIMPRIME.Text = Printer.DeviceName
For Each nrIMPRESSORA In Printers
  cboIMPRIME.AddItem nrIMPRESSORA.DeviceName
Next
Depois para imprimir
For Each nrIMPRESSORA In Printers
  If nrIMPRESSORA.DeviceName = cboIMPRIME.Text Then
   Set Printer = nrIMPRESSORA
   Exit For
  End If
Next
Quando saio do aplicativo e retorno a impressora que foi definida continua como padrão.
Vb6 e XP.
 
vlu//
   
Roßerto
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 09/08/2007 07:41 hs            
Olá, o set printer funciona sim, mas não altera a impressora padrão no windows.
para mudar a impressora padrão do windows vc precisaria usar API.
 
 
     
Eh Nhois
SAO PAULO
SP - BRASIL
Postada em 10/08/2007 12:05 hs         
Obrigado pelas respostas.
 
Vou testar seu código, LCRamos.
 
Abraço!
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 13/08/2007 04:06 hs            
Desculpem amigos, mas o meu código altera a impressora padrão, em qualquer aplicativo que entrar posteriormente, estará definida como deixei no VB.
 
vlu//
     
Eh Nhois
SAO PAULO
SP - BRASIL
Postada em 13/08/2007 08:01 hs         
Na verdade é isso que acontece comigo. Queria que o programa capturasse a impressora padrão atual (isso eu consigo), depois, no meu programa, eu pudesse selecionar a impressora que eu quiser, e, finalmente, quando saísse do programa voltasse a impressora que estava.
 
'-------------------------------------------------------------
Dim xPrinter As Printer

For Each xPrinter In Printers
     If xPrinter.DeviceName = Printer.DeviceName Then 'É a Impressora Padrão
        Exit For
     'Else 'Outras Impressoras Instaladas
     End If
Next xPrinter
            
CommonDialog1.ShowPrinter
' aqui eu imprimo
 
' Depois volto a impressora que estava
 
Set Printer = xPrinter     ' este código não funciona
'-------------------------------------------------------------
 
Como disse o Roberto, parece que o Set Printer não altera a impressora padrão do Windows.
 
Roberto, você sobre que existe uma API que faz isso. Você teria um exemplo?
 
Mais uma vez obrigado.
     
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página