|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Visual Basic Network Services ConnectToPrinterDlg: Install Network Printers |
|
Posted: | Wednesday January 04, 2006 |
Updated: | Monday December 26, 2011 |
Applies to: | VB4-32, VB5, VB6 |
Developed with: | VB6, Windows XP |
OS restrictions: | Windows NT, 2000, XP or later |
Author: | VBnet - Randy Birch |
Related: |
WNetAddConnection2: Transparently Connect to Network Shares NetShareCheck: Determine Remote Folder or Device Share Status WNetEnumResource: Enumerating Local Network Resources NetConnectionEnum: Enumerating Share Connection Information NetShareEnum: Enumerating Shared Resources on Other Machines NetShareAdd: Create a Local or Remote Share WNetGetUser: User, Share and Share User for Network Resources WNetGetConnection: Get UNC Path for Mapped Drive |
Prerequisites |
Windows NT, 2000, XP or later to use ConnectToPrinterDlg; none to use the alternate Rundll32 method detailed in the Command1_Click code comments. |
|
The
ConnectToPrinterDlg function displays a dialog box that lets users
browse and connect to printers on a network. If the user selects a
printer, the function attempts to create a connection to it; if a
suitable driver is not installed on the server, the user is given the
option of creating a printer locally.
To view the printers folder use the Open Explorer button. |
BAS Module Code |
None. |
|
Form Code |
To a form add one command buttons (Command1) and set the Index property to 0 to create a control array. The code will take care of creating the remaining buttons. Add the following code to the form: |
|
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Const SW_SHOWNORMAL As Long = 1 Private Declare Function ConnectToPrinterDlg Lib "winspool.drv" _ (ByVal hwnd As Long, ByVal flags As Long) As Long Private Declare Function ShellExecute Lib "shell32.dll" _ Alias "ShellExecuteA" _ (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Sub Form_Load() Dim cnt As Long For cnt = 0 To 2 If cnt > 0 Then Load Command1(cnt) With Command1(cnt) .Move 200, 200 + (370 * cnt), 2000, 345 .Visible = True Select Case cnt Case 0: .Caption = "Connect Net Printer" Case 1: .Caption = "Open Explorer" Case 2: .Caption = "Exit" End Select End With Next 'cnt End Sub Private Sub Command1_Click(Index As Integer) Select Case Index Case 0: 'Map network printer 'If ConnectToPrinterDlg succeeds and the 'user selects a printer, the return value 'is a handle to the selected printer. If 'the call fails, or the user cancels the 'dialog box without selecting a printer, 'the return value is 0. 'Note that ConnectToPrinterDlg is not 'available on Windows versions prior to NT 3.51. 'Windows 95-ME users must use the corresponding 'rundll32 command to invoke the Add Printer dialog: 'Call Shell("rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter", vbNormalFocus) 'print result to debug window Debug.Print ConnectToPrinterDlg(Me.hwnd, 0&) Case 1: 'show printers Call ShellExecute(0&, "Open", _ "explorer.exe", _ "/e,::{2227A280-3AEA-1069-A2DE-08002B30309D}", _ 0&, SW_SHOWNORMAL) Case 2: 'quit Unload Me End Select End Sub |
Comments |
|
|
|
|||||
|
|||||
|
|||||
Copyright ©1996-2011 VBnet and Randy Birch. All Rights Reserved. |