通过注册表设置默认打印机的方法
2011-07-27 15:42
761 查看
//获取默认打印机
BOOL CPrinterInfo::GetTheDefaultPrinterByReg()
{
//通过注册表,获取默认的打印机配置
HKEY defaultKey;
DWORD bufferSize = 255;
TCHAR *printerName = new TCHAR[255];
//_tprintf_s(_T("\nGet The Default Printer......\n"));
if(RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"),0,
KEY_QUERY_VALUE,&defaultKey) == ERROR_SUCCESS)
{
if(RegQueryValueEx( defaultKey,
_T("Device"),
NULL,
NULL,
(LPBYTE)printerName,
&bufferSize ) == ERROR_SUCCESS)
{
//_memccpy(m_szOldDefultPrinterName,printerName,',',MAX_PATH);
//_tcscpy_s(m_szOldDefultPrinterName,MAX_PATH,printerName);
memcpy(m_szOldDefultPrinterName,printerName,MAX_PATH);
}
else
{
//_tprintf_s(_T("failed to get the default printer\n\n"));
RegCloseKey(defaultKey);
return FALSE;
}
}
RegCloseKey(defaultKey);
return TRUE;
}
//设置默认打印机
void CPrinterInfo::SetDefalutPrinterByReg()
{
//通过注册表,设置默认的打印机配置
HKEY defaultKey;
//tempName长度
DWORD keySize = (lstrlen(m_szOldDefultPrinterName)+1)*sizeof(TCHAR);
//_tprintf_s(_T("\nSet The Default Printer..............\n"));
//打开注册表
if(RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"),0,
KEY_SET_VALUE //KEY_SET_VALUE 标识权限,修改注册表
,&defaultKey) == ERROR_SUCCESS)
{
if( RegSetValueEx( defaultKey,
_T("Device"),
NULL,
REG_SZ, //key标识,REG_SZ标识字符串
(LPBYTE)m_szOldDefultPrinterName,
keySize )== ERROR_SUCCESS)
{
//_tprintf_s(_T(".....OK.......\n"));
//AfxMessageBox(m_szOldDefultPrinterName);
}
else
{
//_tprintf_s(_T("failed to set default printer\nError:%d"),GetLastError());
}
}
RegCloseKey(defaultKey);
}
BOOL CPrinterInfo::GetTheDefaultPrinterByReg()
{
//通过注册表,获取默认的打印机配置
HKEY defaultKey;
DWORD bufferSize = 255;
TCHAR *printerName = new TCHAR[255];
//_tprintf_s(_T("\nGet The Default Printer......\n"));
if(RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"),0,
KEY_QUERY_VALUE,&defaultKey) == ERROR_SUCCESS)
{
if(RegQueryValueEx( defaultKey,
_T("Device"),
NULL,
NULL,
(LPBYTE)printerName,
&bufferSize ) == ERROR_SUCCESS)
{
//_memccpy(m_szOldDefultPrinterName,printerName,',',MAX_PATH);
//_tcscpy_s(m_szOldDefultPrinterName,MAX_PATH,printerName);
memcpy(m_szOldDefultPrinterName,printerName,MAX_PATH);
}
else
{
//_tprintf_s(_T("failed to get the default printer\n\n"));
RegCloseKey(defaultKey);
return FALSE;
}
}
RegCloseKey(defaultKey);
return TRUE;
}
//设置默认打印机
void CPrinterInfo::SetDefalutPrinterByReg()
{
//通过注册表,设置默认的打印机配置
HKEY defaultKey;
//tempName长度
DWORD keySize = (lstrlen(m_szOldDefultPrinterName)+1)*sizeof(TCHAR);
//_tprintf_s(_T("\nSet The Default Printer..............\n"));
//打开注册表
if(RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"),0,
KEY_SET_VALUE //KEY_SET_VALUE 标识权限,修改注册表
,&defaultKey) == ERROR_SUCCESS)
{
if( RegSetValueEx( defaultKey,
_T("Device"),
NULL,
REG_SZ, //key标识,REG_SZ标识字符串
(LPBYTE)m_szOldDefultPrinterName,
keySize )== ERROR_SUCCESS)
{
//_tprintf_s(_T(".....OK.......\n"));
//AfxMessageBox(m_szOldDefultPrinterName);
}
else
{
//_tprintf_s(_T("failed to set default printer\nError:%d"),GetLastError());
}
}
RegCloseKey(defaultKey);
}
相关文章推荐
- 通过注册表来设置修改默认浏览器的方法
- 通过注册表来设置修改默认浏览器的方法
- 浏览器 通过注册表来设置修改默认浏览器的方法
- Win7下修改注册表设置Chrom为默认浏览器的方法
- win7中如何通过修改注册表设置默认浏览器
- 在多声卡的情况下使用修改注册表的方法设置默认声卡
- Win7系统设置自动切换默认打印机的方法
- 通过注册表修改Win7下远程桌面端口3389的设置方法
- 在多声卡的情况下使用修改注册表的方法设置默认声卡
- Win8系统中设置默认打印机的快速方法详解
- 【Win7中如何通过修改注册表将IE设置为默认浏览器】
- mysql-5.6.23设置默认编码为utf8方法
- iOS开发(iPad/iPhone)设置app界面 默认横向显示的两种方法
- win7无法保存打印机设置(错误0x000006d9)解决方法
- loadrunner打不开ie&ie默认浏览器设置方法
- 通过VB访问远程计算机注册表的方法
- linux 通过设置配置文件修改mysql的默认编码
- Script 通过注册表设置打印
- vb.net 设置默认打印机