Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Modificare stampante predefinita

    io per modificare la stampante predefinita uso:

    codice:
    Dim miaStampante As Printer
    
    For Each miaStampante In Printers
        If miaStampante.DeviceName = "Adobe PDF" Then
            Set Printer = miaStampante
            MsgBox "trovata!"
        Exit For
    End If
    Next
    Il msgbox appare quindi la condizione è True...

    Non mi da nessun errore ma allo stesso tempo non succede nulla....

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Cosa dovrebbe accadere di preciso?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    dobrebbe impostare come stampante predefinita di sistema quella da me scelta.....

    Faccio questo perchè voglio creare il pdf di un datareport tramite stampa con Adobe PDF

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Se il problema è scegliere una stampante tra tutte quelle disponibili nel sistema, potresti fare così:
    codice:
    Private Sub Command1_Click()
        Dim prn As Printer
        
        ' Scelta della stampante:
        Combo1.Clear
        For Each prn In Printers
            Combo1.AddItem prn.DeviceName
        Next
        
        Combo1.Text = "Seleziona la stampante"
        ' Visualizza la stampante predefinita :
        Label1.Caption = "La stampante predefinita è: " + vbCrLf + Printer.DeviceName
    
    End Sub
    ' Scelta della stampante:
    Private Sub Combo1_Click()
        
        Dim prn As Printer
        For Each prn In Printers
            If prn.DeviceName = Combo1.Text Then
                Set Printer = prn
                Exit For
            End If
        Next
        ' Scrive il nome della stampante scelta nella Lbl2:
        Label2 = "La stampante scelta é: " + vbCrLf + Printer.DeviceName
    End Sub
    LM

  5. #5
    scusa e non è la stessa cosa che ho fatto io? Solo che invece della combobox lo inserisco io nel codice il nome della stampante da scegliere...?

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Bhe direi che sono solo parenti prossimi.
    Il codice che ho postato evidenzia le stampanti installate nel SO, consentendo poi una scelta.
    Comunque se il problema non è questo, non ho proprio capito cosa cerchi.
    LM

  7. #7
    tu hai usato la combobox per passare il nome della stampante:

    codice:
    Private Sub Combo1_Click()
        
        Dim prn As Printer
        For Each prn In Printers
            If prn.DeviceName = Combo1.Text Then
                Set Printer = prn
                Exit For
            End If
        Next
    Io ho usato una stringa scritta a mano:
    codice:
    Private Sub Combo1_Click()
        
        Dim prn As Printer
        For Each prn In Printers
            If prn.DeviceName = "Adobe PDF"Then
                Set Printer = prn
                Exit For
            End If
        Next
    Ma il codice per settare la stampante è sempre lo stesso! Credo che il problema sia che anche se l'oggetto printer di default è impostato sulla stampante predefinita non avviene lo stesso al contrario....ovvero se modifico l'oggetto printer non modifico la stampante predefinita di sistema!

    quindi col codice che abbiamo noi assegnamo a printer la stampante desiderata ma la predefinita di sistema resta sempre la stessa!

    Mettiamo il caso che io non voglia stampare nulla ma solo cambiare la stampante predefinita cliccando un tasto...che dici che conviene fare'?

  8. #8

  9. #9
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    ....ovvero se modifico l'oggetto printer non modifico la stampante predefinita di sistema!
    Ora ho capito cosa vuoi ottenere - modificare la prn predefinita del SO.
    I due codici selezionano correttamente le stampanti, ma non modificano la predefinita.
    Mi chiedo, poi, se è coretta un'operazione del genere; personalmente mi seccherebbe moltissimo che un prog. andasse a modificare i settaggi del mio SO.
    LM

  10. #10
    Grazie Jupy era quello che cercavo!

    Lmondi lo so che non è molto bello ma tanto ho intenzione subito dopo la stampa di risettare la precedente stampante! Il fatto è che col metodo scritto da te (e da me) non funziona....o meglio io devo stampare un datareport di vb6 senza farlo apparire (l'anteprima) quindi uso l'istruzione
    codice:
     mioReport.PrintReport
    e se prima di quello uso il codice detto da te non funziona....continua a usare la predefinita!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.