阿達金田一 發表於 2014-11-27 02:12 
我個人的話...大概會把固定不變的值用 .reg 直接 regedit /s ...就不用 echo >> 了
路徑部份用 reg.exe ad ...
謝謝金田一的回覆
個人這樣作的考量是因為,這個不僅僅在pe環境可以用。在一般環境也能用。
考慮到放的路徑可能不一樣,才用echo的方式去產生當前路徑。
[HKEY_LOCAL_MACHINE\Software\Classes\AppID\{C4E69DB9-E094-483e-B922-E7ADE65FB497}]
這行我沒補齊,目前功能是正常,能打開也能從裡面複製檔案出來。原本點兩下沒反應的問題,
使用wusun提醒的指令更新關連後解決了。
Pecmd.exe CALL $SHELL32.DLL,SHChangeNotify,#134217728,#0,#0,#0
[HKEY_LOCAL_MACHINE\Software\Classes\tibfile\Shell\open\ddeexec]
@="[ViewFolder(\"%l\", %I, %S)]"
"NoActivateHandler"=""
我的為echo @="[ViewFolder(\\\"%%l\\\", %%I, %%S)]"
是因為%和\為殊特字元的關係
從登錄檔匯出時
該行就為 @="[ViewFolder(\\\"%l\\\", %I, %S)]"
實際登錄完,查看時是 @="[ViewFolder(\"%l\", %I, %S)]" 沒錯。
而%%是因為批次檔中%為殊特字元,要再加1個%,才會在.reg顯示為@="[ViewFolder(\\\"%l\\\", %I, %S)]",不讓%被吃掉。
pe上使用目前沒問題了
但如果要在一般環境下使用
rundll32.exe SHELL32.DLL SHChangeNotify (#134217728,#0,#0,#0)
上面這行執行沒反應,似乎是不能直接在command下弄~"~。只能重啟explorer,或是用autoit做一個小程式來取代了。 |