+ Reply to Thread
Results 1 to 3 of 3

printing to a printer without asking which printer

Hybrid View

  1. #1
    Registered User
    Join Date
    03-05-2006
    Posts
    28

    Question printing to a printer without asking which printer

    Hi

    I know from a search how to get a list of available printers on a PC, and I know by recording a macro how to get a printer as the active printer which the print goes to.

    What I need is how to get a command to set a active printer from a list of printers?

    Is there a way to generate a list of printers on a pc, but to display them with the necessary network parts attached eg
    Application.ActivePrinter = "\\TS2K-SHEFFIELD\FLOWLAB2600n on Ne03:"
    , also some are not networked -
    Application.ActivePrinter = "HP Business Inkjet 1200 Series on LPT1:"
    This is to bypass the pop up dialog box selecting the printer, as it will always be the laser printer and not any of the others, I know you could set it up so the user selects the pc they are working on, but the might as well select the printer.

  2. #2
    Forum Moderator Leith Ross's Avatar
    Join Date
    01-15-2005
    Location
    San Francisco, Ca
    MS-Off Ver
    2000, 2003, & 2010
    Posts
    23,259

    Re: printing to a printer without asking which printer

    Hello cuewoz,

    This macro should provide a good starting point. It lists the available printers as you describe, but this code is for computers that use NTFS (Windows NT File Structure). You don't mention which operating system you are using either in your post in your profile. If you are using Windows 2000 or later then this macro should run.
    'Written: April 15 ,2009
    'Author:  Leith Ross
    'Summary: Lists the printers and ports that are available to the user.
    
    Sub PrintersAndPorts()
    
     'This works with Windows 2000 and up
     
      Dim Arr As Variant
      Dim Device As Variant
      Dim Devices As Variant
      Dim Msg As String
      Dim RegObj As Object
      Dim RegValue As String
      Const HKEY_CURRENT_USER = &H80000001
           
        Set RegObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
        RegObj.enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Devices, Arr
        
          For Each Device In Devices
              RegObj.getstringvalue HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Device, RegValue
              Msg = Msg & Device & " on " & Split(RegValue, ",")(1) & vbCrLf
          Next
          
        MsgBox Msg, vbInformation, "Printers and Ports"
          
    End Sub
    Sincerely,
    Leith Ross

    Remember To Do the Following....

    1. Use code tags. Place [CODE] before the first line of code and [/CODE] after the last line of code.
    2. Thank those who have helped you by clicking the Star below the post.
    3. Please mark your post [SOLVED] if it has been answered satisfactorily.


    Old Scottish Proverb...
    Luathaid gu deanamh maille! (Rushing causes delays!)

  3. #3
    Registered User
    Join Date
    03-05-2006
    Posts
    28

    Re: printing to a printer without asking which printer

    thanks Leith, I'll see what I can do with this but looks very usefull! I use XP BTW

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1