NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 12469|回復: 16

[問題] 請教修改登錄檔後,如何不重啟系統讓其生效

[複製鏈接]
發表於 2014-11-20 12:06:35 | 顯示全部樓層 |閱讀模式
請教板上前輩們,在修改登錄檔後,如何不重啟系統讓其生效

網路上有看到些免安裝的程式,執行後有在登錄檔上增加機碼,畫面也會閃一下,使登錄檔重新載入
這是怎做到的?

我目前只知道重啟explorer.exe可以重新載入,但這方法,要配合taskkill.exe這個指令

而看了一下網路上這些免安裝的,似乎不是用這個方法,還請有經驗的前輩指導一下。
發表於 2014-11-21 21:30:33 | 顯示全部樓層
本帖最後由 wusun 於 2014-11-21 21:38 編輯

不知你問的是如何讓其生效,還是免安裝程式如何在登錄檔上增加機碼(即:畫面也會閃一下-->regedit /s settings.reg)?

登錄值,改了就是改了。
所謂生效不生效,關鍵在於用到此登錄值的程式是改值之前就讀值、還是改後才讀值。
針對免安裝軟體,只要程式執行之前就改好登錄值,應該就會生效。
至於系統相關登錄值,那些在開機時就載入值的:
除了比系統載入更早改其值,或改值叫系統重載入讀值,不然就只能脫機(Off Line)掛載登錄,先寫入其登錄值

 樓主| 發表於 2014-11-24 11:39:41 | 顯示全部樓層
我想自製一個tib檔瀏覽器
參考(http://nonameteam.cc/thread-1955-1-1.html)裡的AB39029程式
裡面的install.exe,該的功能就是安裝驅動和建立服務,及設定檔案關聯。
我利用登錄檔快照的方式,知道了原理,建立驅動和服務也沒問題
但我不需要還原和備份的功能,只需要開啟和瀏覽tib檔就好

我模擬了運作方式,產生settings.reg,在登錄檔寫入後( regedit /s settings.reg )
查看explorer的圖示沒變,直接點兩下也沒效果。
但pecmd kill explorer.exe,再載入explorer.exe後圖示變了,點兩下也可正常執行了。
這表示我登錄檔寫入的部份是對的(與原內容一樣),只是登錄檔要重新載入才會生效(explorer重啟)。

我是用批次檔產生settings.reg,然後再regedit /s settings.reg

我不明白,這要如何做到寫入登錄檔後,使tib和explorer的關聯產生作用
發表於 2014-11-24 12:54:07 | 顯示全部樓層
單單針對「設定檔案關聯」來說:
其登錄可設在:
[HKEY_CURRENT_USER\Software\Classes\..]之下,也可設在
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\..]之下,也可設在
[HKEY_CLASSES_ROOT\...]
都試試,必有其一可馬上生效!

 樓主| 發表於 2014-11-24 18:16:05 | 顯示全部樓層
照著試試,還是不行。
以下是我的登錄檔內容,手動重啟explorer,是可以用的,但如果沒手動重啟,就無法開啟tib檔。

Windows Registry Editor Version 5.00  

[HKEY_LOCAL_MACHINE\SOFTWARE\Acronis]  

[HKEY_LOCAL_MACHINE\SOFTWARE\Acronis\BackupAndRecovery]  

[HKEY_LOCAL_MACHINE\SOFTWARE\Acronis\BackupAndRecovery\CommonComponents]
"icu38.dll"="F:\\tib_Browse_x64\\icu38.dll"
"resource.dll"="F:\\tib_Browse_x64\\resource.dll"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.tib]
@="tibfile"  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.TIB]  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.TIB\OpenWithList]  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.TIB\OpenWithProgids]
"tibfile"=hex(0):  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile]
@="Acronis Backup File"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\CLSID]
@="{C539A15B-3AF9-4c92-B771-50CB78F5C751}"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\DefaultIcon]
@="F:\\tib_Browse_x64\\tib_mounter.dll,0"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\Shell]  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\Shell\open]
@=""  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\Shell\open\command]
@="explorer /idlist,%I,%L"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\Shell\open\ddeexec]
"NoActivateHandler"=""
@="[ViewFolder(\\\"%l\\\", %I, %S)]"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\Shell\open\ddeexec\application]
@="Folders"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\Shell\open\ddeexec\ifexec]
@="[]"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\tibfile\Shell\open\ddeexec\topic]
@="AppProperties"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C539A15B-3AF9-4c92-B771-50CB78F5C751}]
@="Acronis Backup and Recovery 10 Shell Extension"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C539A15B-3AF9-4c92-B771-50CB78F5C751}\Implemented Categories]  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C539A15B-3AF9-4c92-B771-50CB78F5C751}\Implemented Categories\{00021490-0000-0000-C000-000000000046}]
@=""  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C539A15B-3AF9-4c92-B771-50CB78F5C751}\InProcServer32]
"ThreadingModel"="Apartment"
@="F:\\tib_Browse_x64\\tishell.dll"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C539A15B-3AF9-4c92-B771-50CB78F5C751}\ShellFolder]
"Attributes"=dword:a0000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C539A15C-3AF9-4c92-B771-50CB78F5C751}]
@="Acronis True Image Shell Extension Backend"
"AppID"="{C4E69DB9-E094-483e-B922-E7ADE65FB497}"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C539A15C-3AF9-4c92-B771-50CB78F5C751}\InProcServer32]
"ThreadingModel"="Apartment"
@="F:\\tib_Browse_x64\\tishell_svr.dll"  

發表於 2014-11-24 22:05:06 | 顯示全部樓層
因為牽扯到CLSID,故無法登錄檔一改好就馬上生效,還須通知系統,關聯已改變!
通知系統關聯已改變之方法為:
Pecmd.exe CALL $SHELL32.DLL,SHChangeNotify,#134217728,#0,#0,#0


發表於 2014-11-24 22:11:09 | 顯示全部樓層
wnchn 發表於 2014-11-24 18:16
照著試試,還是不行。
以下是我的登錄檔內容,手動重啟explorer,是可以用的,但如果沒手動重啟,就無法開 ...

要這個功能嗎?

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?我要註冊

x
 樓主| 發表於 2014-11-25 09:55:10 | 顯示全部樓層
對啊,就是要這個功能啊。
關連改變後,不知道為什麼,我的windows 8.1 PE,直接點兩下tib檔,會沒反應。
要按右鍵,選"在新視窗開啟"才會打開該tib檔。
但用完整的windows 2012 R2和xp做測試則沒這個問題,
不明白是缺了那個檔案
發表於 2014-11-25 13:17:40 | 顯示全部樓層
wnchn 發表於 2014-11-25 09:55
對啊,就是要這個功能啊。
關連改變後,不知道為什麼,我的windows 8.1 PE,直接點兩下tib檔,會沒反應。
...

其實我也不清楚該怎麼改關聯,只不過去王的博客下載AIT2015執行他就會關聯tib檔案了,很方便,不用在那邊研究如何關聯了...
發表於 2014-11-25 19:56:42 | 顯示全部樓層
檔案位置無誤 ?
F:\\tib_Browse_x64\\tishell_svr.dll
在 WinPE8.1 下位置是在 F:\tib_Browse_x64 ?
若不是...可以用 reg.exe add 寫入當前的路徑

另外試看看那些 DLL 能不能 regsvr32
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2024-9-15 02:39 , Processed in 0.360986 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表