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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Alterando impressora padrão não está funcionando
Emerson2005
OSASCO
SP - BRASIL
Postada em 06/07/2006 18:47 hs            
Ai Galera,
Não estou conseguindo alterar a impressora padrão.
Segue o código:
 
    Dim xprinter As Printer
    For Each xprinter In Printers
        If xprinter.DeviceName = Combo1 Then
            Set Printer = xprinter
            Exit For
        End If
    Next xprinter
Valeu!
Emoções
     
Sandro
não registrado
Postada em 06/07/2006 20:41 hs   
Olá,
 
O que você chama de alterar a impressora padrão? Você quer apenas alterar a impressora de destino enquanto está no seu programa, ou deseja que a impressora selecionada PERMANEÇA como a padrão do Windows?
Se for a primeira opção, o seu código acima está correto, desde que você tenha carregado o nome correto das impressoras para a combo (aliás, use Combo1.text, ao invés de apenas Combo1).
Mas se você deseja que a impressora permaneça selecionada como padrão mesmo depois de sair do seu programa, você deverá usar um código semelhante a esse:
 
Private Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long
Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
Private Const WM_WININICHANGE = &H1A
Private Const SMTO_NORMAL = &H0
Private Const HWND_BROADCAST = &HFFFF&
'Para Window 9x:
   WriteProfileString "windows", "device", Printer.DeviceName & "," & Printer.DriverName & "," & Printer.Port
   SendMessageTimeout HWND_BROADCAST, WM_WININICHANGE, 0, "windows", SMTO_NORMAL, 1000, 0
'Para Windows NT:
   WriteProfileString "windows", "device", Printer.DeviceName & "," & Printer.DriverName & "," & Printer.Port
   SendMessageTimeout HWND_BROADCAST, WM_WININICHANGE, 0, 0, SMTO_NORMAL, 1000, 0

 
um abraço,
Sandro.
     
>>|Bedin|<<
SANTO ANDRE
SP - BRASIL
Postada em 06/07/2006 23:17 hs            
Tente isso:

Private Sub Form_Load()

ABRIR_BANCO 'fiz no modulo a rotina para abrir o banco...

  'carrega impressoras no combo
On Error GoTo ERRO_IMPRESSORA
     Dim I As Printer
    With Me
      .Combo1.Clear
     For Each I In Printers
      .Combo1.AddItem I.DeviceName
    Next I
      .Combo1.Text = Printer.DeviceName
      .LblPorta.Caption = Printer.Port
      .LblDriver.Caption = Printer.DriverName
170    End With
Exit Sub
ERRO_IMPRESSORA:
  MsgBox "Nenhuma Impressora Instalada!", vbCritical
End Sub
--------------------------------------------------------------------------------------------------
Private Sub IMPRIMIR_Click()
On Error GoTo ERRO_RELATORIO
  If MsgBox("Deseja Imprimir o Relatório Geral ?", vbQuestion + vbYesNo") = vbYes Then
    'CrystalReport1.Connect = "pwd=se seu bd tiver senha..."
    CrystalReport1.ReportFileName = App.Path & "
elatorio.rpt"
    If frmRELATORIO.AREA.Visible = False Then
      CrystalReport1.SelectionFormula = ""
      CrystalReport1.WindowTitle = "Relatorio"
      CrystalReport1.WindowState = crptMaximized
      CrystalReport1.Action = 1
    Else
      Exit Sub
    End If
  End If
Exit Sub
ERRO_RELATORIO:
  MsgBox "Erro no Relatório!" & vbCrLf & "A impressão foi cancelada...", vbCritical
End Sub

Espero ter ajudado!!!  qlq coisa post dnovo!!!

.:Rodrigo Bedin:.
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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