2015-08-25 63 views
0

我想使用批處理文件修改註冊表值。我知道如何使用.reg文件來做到這一點,但我需要使用批處理文件來完成,因爲批處理文件中有更多的命令。使用批處理文件修改註冊表

所以,我想改變以下值:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Outlook\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\00000004] 

"POP3 Server"=hex:31,00,39,00,32,00,2e,00,30,00,2e,00,30,00,2e,00,31,00,30,00,\ 
    30,00,00,00 

任何想法?

+1

要通過批處理文件修改註冊表,您可以使用[reg.exe](http://ss64.com/nt/reg.html)(直接提供值)或[regedit.exe]( http://ss64.com/nt/regedit.html)(傳遞一個註冊表文件)。 – aschipfl

回答

0

您是否在嘗試修改POP3服務器名稱?你不應該這樣做,直接在註冊表中 -

  • 「15」以上是Outlook 2013,所以展望的任何其他版本將 工作
  • 「瞭望」上述表示的配置文件名稱。如果用戶具有不同的配置文件名稱會怎麼樣?
  • 「9375CFF0413111d3B88A00104B2A6676」是配置文件部分GUID。每臺機器都不一樣。
  • 4是帳戶ID。在不同的機器上也不同。

您需要爲使用IOlkAccountManager API(C++或Delphi只有 - 你可以看到在OutlookSpy的數據,如果你點擊IOlkAccountManager按鈕)或Redemption(任何語言) - 其RDOPOPAccount對象明確公開的POP3服務器名稱:

set Session = CreateObject("Redemption.RDOSession") 
Session.Logon("YourProfileName") 
set Accounts = Session.Accounts 
for each Account in Accounts 
    if Account.AccountType = 0 Then 'atPOP3 
    'MsgBox "POP3 server for account " & Account.Name & ": " & Account.POP3_Server 
    if Account.POP3_Server = "server1.com" Then 
     Account.POP3_Server = "server2.com" 
     Account.Save 
    End If 
    end if 
next 
+0

感謝您的回答,但問題是我的知識非常有限,所以我無法應用您所寫的內容。我是新手。 因此我更喜歡批處理文件解決方案 –

+0

上面的代碼將從獨立的VBS文件運行。 –