-
[?]註冊檔內如何使用通用語法
有些檔案在windwos或winnt資料夾內
加入註冊檔的時候
可以使用%SystemRoot%來取代
(%windie%好像也可以 沒詳細測試過)
但是放在program files 的目前測試都要寫完整名稱
造成一些遷移上的小麻煩
不知有沒有辦法使用類似%%的變數來達到可以變化目標的方式
這邊有點奇怪
以OFFICE預設安裝的方式
是允許以下的寫法
%ProgramFiles%\Microsoft Office\Office10\OUTLOOK.EXE
但是當我自己要增加右鍵開啟項目__例如__以IE開啟檔案
以下寫法
%ProgramFiles%\Internet Explorer\IEXPLORE.EXE "%1"
就會造成無法開啟
會顯示存取被拒
除非寫上
D:\Program Files\Internet Explorer\IEXPLORE.EXE "%1"
(我的XP預設在WINNT.sif安裝時 就指定Program Files放到D)
謝謝
-
回覆: [?]註冊檔內如何使用通用語法
-
批次檔範例:reg add "hkcr\txtfile\shell\open\command" /ve /t reg_expand_sz /d "%%programfiles%%\internet explorer\iexplore.exe \"%%1\"" /f
-
回覆: [?]註冊檔內如何使用通用語法
琥珀兄
這是我的reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\OpenInIE]
@="使用Internet Explorer開啟"
[HKEY_CLASSES_ROOT\*\shell\OpenInIE\Command]
@="%ProgramFiles%\\Internet Explorer\\iexplore.exe \"%1\""
如果使用變數的話
會造成無法用右鍵開啟文件
會顯示存取被拒
以上
謝謝
-
要用可擴展字串值,不能用一般的字串值。用指令做一個,重新編輯內容,匯出 reg 檔案。
-
回覆: [?]註冊檔內如何使用通用語法
我剛剛測試了一下,用
"%ProgramFiles%\Internet Explorer\iexplore.exe" "%1"
會出現存取被拒,用
"C:\Program Files\Internet Explorer\iexplore.exe" "%1"
則正常。
匯出登錄檔則是長成這樣:
[code]Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Open in IE\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" \"%1\""
[/code]
我也很想知道能否用環境變數達成這個目的?
-
需要展開的變數,一律用 reg_expand_sz 就是了。用 reg_sz 是不會展開任何環境變數的。
坦白地說,reg_sz 就是用來存放靜態的字串,那些 %windir% 什麼的名稱,在此不叫變數。
-
回覆: [?]註冊檔內如何使用通用語法
琥珀兄
我使用這樣匯入
reg add "hkcr\*\shell\OpenInIE2\command" /ve /t reg_expand_sz /d "%%programfiles%%\internet explorer\iexplore.exe \"%%1\"" /f
匯入成功後
regedit後看到的是
%D:\Program Files%\internet explorer\iexplore.exe "%%1"
匯出是長成這樣
[HKEY_CLASSES_ROOT\*\shell\OpenInIE\command]
@=hex(2):25,00,44,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,\
00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,69,00,6e,00,74,00,65,00,72,00,\
6e,00,65,00,74,00,20,00,65,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,5c,\
00,69,00,65,00,78,00,70,00,6c,00,6f,00,72,00,65,00,2e,00,65,00,78,00,65,00,\
20,00,22,00,25,00,25,00,31,00,22,00,00,00
實際使用上
一樣'存取被拒'
謝謝
-
先在批次檔裡面寫好,再執行。
直接鍵入指令執行,有兩個地方要注意。一個是 % 不用重複,另一個是捨棄 %programfiles% 變數,不然 cmd 會自動轉換一次,變成如上述的情形,而用批次檔模式執行就不會有這個問題。
[img]http://img516.imageshack.us/img516/1825/regnx2.png[/img]