1. 程式人生 > >通過登錄檔設定預設印表機的方法

通過登錄檔設定預設印表機的方法

 

//獲取預設印表機
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 *print

win7下通過修改MAC的方法

步驟1:執行【開始】丨【執行】命令,在彈出的【執行】對話方塊中輸入regedit.單擊【確定】按鈕,開啟登錄檔編輯器,如圖1所示。   圖1  登錄檔編輯器 2 步驟2:依次選擇H

如何通過修改預設程式

小背景 自從上次修改了登錄檔之後,不知道是手誤還是其他原因,每次開啟pdf的時候都要選擇開啟程式,就比較麻煩,於是就想通過window10 自帶的修改預設程式的元件進行修改,然並卵。只好開拓新思路----用登錄檔來改。 系統引數 window10 64位 專業版 詳

一種通過獲取USB虛擬串列埠埠號的方法

在開發一個Modbus的串列埠監測工具軟體的時候,啟動工具軟體,希望一開始就能在下拉框檢測到當前有效的USB串列埠。 剛開始做的時候是用的窮舉法,就是“COM0”~“COM15”一個一個嘗試開啟。但是,這樣做一個是效率低下,另一個是換了新的USB-串列埠介面卡,有可能虛擬串

通過修改鍵盤

本人電腦聯想E550,出於程式設計師的職業實在無法忍受Home與End鍵不與方向鍵挨在一起,而與方向鍵挨著的是PgUp和PgDn。經過研究,瞭解到可以通過修改登錄檔檔案來修改鍵盤按鍵。有兩種方法可以完美解決這個問題,不過這兩種方法的本質是一樣的。 方法一:手動修改登錄檔來改鍵 普及一個概

Win10系統修改通過修改網絡卡mac地址

 win+R快捷鍵->輸入regedit開啟登錄檔 定位到  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Class \{4D36E972-E325-11CE-BFC1-08002BE10318}\

VC++ 動態檢測串列埠的熱插拔(一)通過實現

在上一篇文章中講述瞭如何通過迴圈遍歷的方法獲取可用串列埠,可是這樣的方法過於暴力,難免會想有沒有其他的辦法那,嘿嘿,那是肯定會有的,不管什麼問題,解決問題的方法永遠都不止一種。下面講述如何通過登錄檔來獲取可用串列埠。 大家都知道,通過裝置管理器我們可以看到可用串列埠號的

C++ 通過獲取Windows版本資訊

原理:通過訪問登錄檔 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion 下的鍵值資訊來獲取windows版本資訊。由於是訪問登錄檔獲取的資訊,所以準確性一般。 #include <

NSIS 註冊64位控制元件及修改鍵的許可權方法

1 註冊控制元件 註冊32位控制元件:RegDLL "c:\windows\system32\x.dll" 註冊64位控制元件: 禁止檔案重定向,使用系統命令註冊控制元件,如下: ExecWait ‘“$SYSDIR\regsvr32.exe" /s "c:\windows

通過檔案進行配置WSUS自動更新

對於工作組環境,無法像域環境那樣通過配置將變動直接應用給大量的客戶端。為了簡化操作,可以針對自己搭建的WSUS伺服器,編寫包含伺服器相關資訊的.reg檔案,然後合併到所有的客戶端計算機上。但這並非最佳的解決辦法,因為在登錄檔檔案中可包含的資訊並不像組策略設定那麼豐富,而且依

Win7寫入失敗怎麼辦?Win7寫入失敗的解決方法

 Win7登錄檔寫入失敗怎麼辦?Win7系統寫入登錄檔時失敗可能是由於許可權不足造成的,下面小編就給大家帶來Win7寫入登錄檔失敗的解決方法,一起來看看吧。   方法步驟   1、首先找到寫入出錯的登錄檔位置;   2、右鍵選中需要該的登錄檔位置,點選“許可權”;   

VBA操作的三種方法

1. 利用VBA內建的方法實現。VBA內建操作登錄檔的四個函式分別是SaveSetting(寫入登錄檔)、GetSetting(讀取登錄檔)、GetAllSettings(獲得登錄檔的鍵和值)和DeleteSetting(刪除鍵或值)。但內建方法只能操作登錄檔中的HKEY_

win10 此電腦顯示多餘的資料夾通過去除

win10 的此電腦,就是win7的計算機位置多了6個資料夾出來,說實話這個很不友好,因為如果資料夾沒有全屏那麼下面的磁碟會被遮擋住,讓人很有些不爽。其實右邊還好一些,可以點選收起將資料夾部分收起來,但是左側導航欄就不可以,沒有分類,也沒有部分收起的功能。所以我

通過遮蔽WIN+L、登出、切換使用者等

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableLockWorkstation"=dword:00000001 "DisableTaskMgr"=d

遷移桌面程式到MS Store(15)——通過開啟Developer Mode

沒想到該系列不僅沒有太監,還打算更新一個小短篇。在各種大廠小廠工作的各位想必都知道Windows域的概念。入域機器的設定由不得登入所用的域賬號,Windows的更新和安全等眾多的設定均被鎖定,由域管理員掌控。聞道有先後,術業有專攻。域管理員往往不懂軟體開發,公司統一的Group Policy設定也不會額外針對

WinForm通過操作實現限制軟體使用次數的方法

1.建立登錄檔檔案: 開啟記事本,輸入一些內容: ? 1 2 3

用installshield打包時在裡註冊項和鍵值的動態設定方法

在11.5版本里,登錄檔的函式變化不多 我在這裡要記錄的是打包的時候登錄檔的問題,登錄檔分項和鍵,開啟登錄檔(開始->執行,輸入regedit,確定),可以在左邊的樹形裡看見很多資料夾的圖示,這些是項,點選一個項,可以在右邊看見他的鍵值,每個項都有一個“預設”,有的項還

Windows桌面設定

變更“回收站”圖示     1、選擇【開始】→【執行】,在彈出的“執行”對話方塊中輸入regedit命令,並按【Enter】鍵執行,以開啟登錄檔編譯器。     2、依次開啟:HKEY_CLASSES_ROOT\CLSID\{645FF040-5081

QT之INI檔案和操作方法學習筆記

INI檔案格式 節[section] 引數(KEY/VALUE)   name=value 註釋 註釋使用分號表示(;)。在分號後面的文字,直到該行結尾都全部為註釋 QCoreApplication::applicationDirPath()為應用程式當前的絕

安裝pywin32時中無Python3.6安裝路徑解決方法

在安裝pywin32時,出現Python Version 3.6.4 required which was not found in the registry的時候登錄檔中沒有Python3.6.4的安裝路徑。  解決方法: 1.寫一個python檔案,執行即可,在網上找到了登錄檔註冊