F_SET_DEFAULT PRINTER

//Function Name : f_set_default_printer
//Argument Name : as_printername, Arg Type : String, Pass By : Value
//Return Type : Integer

integer li_rc, li_i, li_rtn, li_nbPrinters
string ls_PrinterName[], ls_PrinterName1[], ls_PrinterName2[]
boolean lb_PrinterName
n_cst_string lnv_string
oleobject ole_wsh

ole_wsh = Create OleObject

li_rc = ole_wsh.ConnectToNewObject("WScript.Network")

If li_rc = 0 Then
   
    li_rtn = RegistryKeys("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers", ls_PrinterName1)
   
    If li_rtn = -1 Then
        Destroy ole_wsh
        MessageBox("Information", "Error Registry Keys : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers", Information!)
        Return -1
    End If
   
    For li_i = 1 To UpperBound(ls_PrinterName1)
        ls_PrinterName1[li_i] = lnv_string.of_GlobalReplace(ls_PrinterName1[li_i], ",", "\")
        ls_printerName[UpperBound(ls_printerName) + 1] = ls_PrinterName1[li_i]
    Next
   
    li_rtn = RegistryKeys("HKEY_CURRENT_USER\Printers\Connections", ls_PrinterName2)
   
    If li_rtn = -1 Then
        Destroy ole_wsh
        MessageBox("Information", "Error Registry Keys : HKEY_CURRENT_USER\Printers\Connections", Information!)
        Return -1
    End If
   
    For li_i = 1 To UpperBound(ls_PrinterName2)
        ls_PrinterName2[li_i] = lnv_string.of_GlobalReplace(ls_PrinterName2[li_i], ",", "\")
        ls_printerName[UpperBound(ls_printerName) + 1] = ls_PrinterName2[li_i]
    Next
   
    li_nbPrinters = UpperBound(ls_printerName)
   
    For li_i = 1 To li_nbPrinters
        If ls_printerName[li_i] = as_PrinterName Then
            lb_PrinterName = True
            Exit
        End If
    Next
   
    If lb_PrinterName Then
        ole_wsh.SetDefaultPrinter(as_PrinterName)
    Else
        destroy ole_wsh
        Return -1
    End If
End If

Destroy ole_wsh

Return 1

0 comments:

Post a Comment