//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