// make changes
if GetEnvironment(lenv_Env) = 1 then
choose case lenv_Env.OSType
case WindowsNT!
// check if given printer is valid
if RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices", &
as_DefaultPrinter, ls_Buffer) <> 1 then return -2
// check for needed changes
if (as_DefaultPrinter + "," + ls_Buffer) = of_GetDefaultPrinter() then return 0
// set it in registry
return RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", &
"Device", as_DefaultPrinter + "," + ls_Buffer)
case Windows!
// check if given printer is valid
ls_Buffer = ProfileString(of_GetWinINI(), "Devices", as_DefaultPrinter, "error")
if ls_Buffer = "error" then return -2
// check for needed changes
if (as_DefaultPrinter + "," + ls_Buffer) = of_GetDefaultPrinter() then return 0
// set it in INI file
if SetProfileString(of_GetWinINI(), "Windows", "Device", as_DefaultPrinter + "," + ls_Buffer) <> 1 then
return -1
end if
end choose
else
// error geting environment
return -1
end if
IF li_rtn = 1 THEN
li_ArrayUp = UpperBound(ls_printer)
//取列表数组上限
IF li_ArrayUp >= 1 THEN
FOR li_step = 1 to li_ArrayUp
ddlb_printer.additem ( ls_Printer[li_step] )
//向下拉列表框中增加打印机
NEXT
ELSE
return false
END IF
ELSE
return false
END IF
return true
//STEP 1: Get the current default printer name.
string ls_default
RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device", ls_default)
sle_def.text = ls_default
//Step 2: Set a new default printer name.
int li_rtn
li_rtn = RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", &
"Device", sle_new.text)
if li_rtn = 1 then
Messagebox("Setting new printer name", "Successful")
else
Messagebox("Setting new printer name", "Failed")
end if