MozTW 討論區 https://forum.moztw.org/ |
|
Portable Firefox Launcher - 9/1 更新 https://forum.moztw.org/viewtopic.php?f=43&t=26495 |
第 1 頁 (共 2 頁) |
發表人: | 冰漾 [ 2009-03-17, 19:11 ] | |||
文章主題 : | Portable Firefox Launcher - 9/1 更新 | |||
由於先前的 Portable Firefox Loader 無法正確於 Vista 及 Win7 底下執行,因此做了小更新。 - 1.1.0.7 # Chang Log: 1. 把 Firefox Loader 更名為 Firefox Launcher 2. 版本號follow之前的版本,為 1.1.0.7 3. 小改icon 4. 系統支援 XP、Vista、Windows 7 5. 本次沒加殼,檔案增至24KB //////////////////////////////////////////////////////////////////////////////////////////////////////////////// 上面這張圖是 Portable Firefox 的結構,很簡單... 1. Portable Firefox:整個 Portable Firefox 的目錄,帶著它就是帶著 整個 Firefox(含 Profiles)一起走... 2. Firefox:Firefox 主程式,可以自行更換、升級 3. Profiles:Portable Firefox 的個人設定檔儲存目錄 4. FirefoxLoader.exe:Portable Firefox 載入程式。 開啟『Portable Firefox\Firefox\firefox.exe』並載入『Portable Firefox\Profiles』內的設定檔,所以目錄名稱不能修改。 如果沒有 Profiles 目錄,程式會自動在『Portable Firefox\』底下新增一個 Profiles 目錄。 //////////////////////////////////////////////////////////////////////////////////////////////////////////////// - 如何更新 Firefox? ☑ 只要將 Firefox 主程式取代『Portable Firefox\Firefox』底下的檔案即可,就算是社群自訂版也可以。 - 如何使 Portable Firefox 設為預設瀏覽器? ☑ 目前尚餵解決設為預設瀏覽器的問題,建議先取消檢查的設定 //////////////////////////////////////////////////////////////////////////////////////////////////////////////// 完整程式檔請到我的 Blog 下載。
|
發表人: | followbliss [ 2009-03-30, 18:59 ] |
文章主題 : | |
剛試用了您的版本 發現兩個小問題 我用的firefox版本是 tete009 3.1B3 1.關閉後 重啟firefox 不會自動開啟上次關閉時有打開的分頁 2.無法設為預設瀏覽器 不曉得您是否有遇到此類問題 可否幫助我解決呢 thanks! ^^ |
發表人: | followbliss [ 2009-03-30, 19:16 ] |
文章主題 : | |
不好意思補充一下 剛發現取消 "檢查是否為預設瀏覽器" 此選項後 已可正常記憶上次打開的分頁 但仍無法設為預設瀏覽器... --- 對了!FirefoxLoader這個執行檔 原本的圖示就有捷徑的小箭頭 丟到快速啟動列... 有點影響美觀 有空的話可以麻煩您更新一下嗎^^ |
發表人: | sabers [ 2009-04-05, 16:36 ] |
文章主題 : | |
感覺比firefox portable啟動快,檔案小多了, 用起來不錯,thanks |
發表人: | a007son [ 2009-04-05, 18:04 ] |
文章主題 : | |
followbliss 寫: 對了!FirefoxLoader這個執行檔 原本的圖示就有捷徑的小箭頭
丟到快速啟動列... 有點影響美觀 有空的話可以麻煩您更新一下嗎^^ 因為有版權問題,所以才這樣做的吧? |
發表人: | 冰漾 [ 2009-04-11, 15:44 ] |
文章主題 : | |
預設瀏覽器可能沒辦法,系統會指向 Firefox 的主程式,還在尋找可能的解決辦法... 不過 Portable 本來就不是用來當系統主要的瀏覽器... |
發表人: | kazuko [ 2009-06-10, 04:17 ] |
文章主題 : | |
原本想說用Resource Hacker去更改冰樣大的FirefoxLoader.exe之圖示, 不過修改後,就無法使用了,不曉得冰樣大能不能修改成可以自定圖示?(自已使用的) 自已使用比較Firefox Portable,啟動速度稍慢,冰樣版的就快多了~ |
發表人: | 冰漾 [ 2009-06-10, 23:46 ] |
文章主題 : | |
kazuko 寫: 原本想說用Resource Hacker去更改冰樣大的FirefoxLoader.exe之圖示, 因為加過殼了,所以沒辦法直接改 icon。
不過修改後,就無法使用了,不曉得冰樣大能不能修改成可以自定圖示?(自已使用的) 自已使用比較Firefox Portable,啟動速度稍慢,冰樣版的就快多了~ 也因為加過殼,所以才會比較小... |
發表人: | JackieKu [ 2009-06-15, 02:58 ] |
文章主題 : | |
冰漾 寫: 預設瀏覽器可能沒辦法,系統會指向 Firefox 的主程式,還在尋找可能的解決辦法...
不過 Portable 本來就不是用來當系統主要的瀏覽器... 未必... 其實Portable的好處除了其可攜性外 另外一大好處應該是容易管理 如果把它們放在系統分割以外的分割上的話... 當哪天需要重灌電腦的時候可以不用再重新安裝該程式而且設定皆可保留... 我想很多人用綠色軟體應該都是為了這個理由... 並非每個使用者都真的把它們放在USB隨身碟內使用 至於對於Firefox的做法... 我之前有做過一個類似的解決方案... 雖然不是很好但是勉強可以用... 做一個wrapper程式...檔名叫做firefox.exe 把原本的firefox.exe更名為_firefox.exe 然後把這個wrapper程式放到跟主程式相同的目錄中 至於要如何註冊預設瀏覽器... 可以透過"uninstall\helper.exe /SetAsDefaultAppGlobal"這指令 缺點是 必須關閉預設瀏覽器檢查...而且不能在瀏覽器內設定預設瀏覽器 還有Firefox現在有一個新參數"-osint"...必須小心處理要不然會出問題 而且不能用Mozilla官方的方式自動更新Firefox核心(如3.0.10 -> 3.0.11) 所以小弟現在懶了... 直接寫一個程式去改%APPDATA%\Mozilla\Firefox\Profiles.ini 把profile目錄指到正確的地方 這個做法就幾乎沒什麼問題了...(至少上述的三個問題都不存在) 只是會去動到系統碟的檔案... 但是考慮到大多公用電腦都有還原系統 而且大多電腦也都沒裝Firefox(所以不會害到別人) 這個方法似乎也不差... 我誠心的認為官方的Firefox應該要內建portable的解決方案 |
發表人: | kazuko [ 2009-06-15, 17:24 ] |
文章主題 : | |
JackieKu 寫: 冰漾 寫: 預設瀏覽器可能沒辦法,系統會指向 Firefox 的主程式,還在尋找可能的解決辦法... 不過 Portable 本來就不是用來當系統主要的瀏覽器... 未必... 其實Portable的好處除了其可攜性外 另外一大好處應該是容易管理 如果把它們放在系統分割以外的分割上的話... 當哪天需要重灌電腦的時候可以不用再重新安裝該程式而且設定皆可保留... 我想很多人用綠色軟體應該都是為了這個理由... 並非每個使用者都真的把它們放在USB隨身碟內使用 至於對於Firefox的做法... 我之前有做過一個類似的解決方案... 雖然不是很好但是勉強可以用... 做一個wrapper程式...檔名叫做firefox.exe 把原本的firefox.exe更名為_firefox.exe 然後把這個wrapper程式放到跟主程式相同的目錄中 至於要如何註冊預設瀏覽器... 可以透過"uninstall\helper.exe /SetAsDefaultAppGlobal"這指令 缺點是 必須關閉預設瀏覽器檢查...而且不能在瀏覽器內設定預設瀏覽器 還有Firefox現在有一個新參數"-osint"...必須小心處理要不然會出問題 所以小弟現在懶了... 只接寫一個程式去改%APPDATA%\Mozilla\Firefox\Profiles.ini 把profile目錄指到正確的地方 這個做法就幾乎沒什麼問題了... 指是會去動到系統碟的檔案... 但是考慮到大多公用電腦都有還原系統 而且大多電腦也都沒裝Firefox(所以不會害到別人) 這個方法似乎也不差... 我誠心的認為官方的Firefox應該要內建portable的解決方案 可否提供 把profile目錄指到正確的地方之程式? |
發表人: | JackieKu [ 2009-06-16, 21:18 ] |
文章主題 : | |
kazuko 寫: 可否提供 把profile目錄指到正確的地方之程式?
目前是用WSH(JScript)實現 把它存成附檔名為js的檔案(例如portable.js)跟firefox.exe放在一起 使用過後檔案目錄結構應該要是這樣 代碼: <DIR>/firefox.exe <DIR>/portable.js <DIR>/profile/ <--- 你的profile設定檔 只有第一次使用或是目錄搬動過的情況才需要執行一次portable.js 也可以用在Thunderbird... 代碼: WshShell = WScript.CreateObject("WScript.Shell");
fso = WScript.CreateObject("Scripting.FileSystemObject"); env = WshShell.Environment("Process"); // directory contains this script baseDir = WScript.ScriptFullName.substring(0, WScript.ScriptFullName.lastIndexOf('\\')); // path to the user profile profileDir = baseDir + '\\profile'; // profile name profileName = 'portable'; function Ini(path) { this.path = path; this.data = {}; try { var f = fso.OpenTextFile(path, 1, false, -2); var section; while (!f.AtEndOfStream) { var s = f.ReadLine(); if (s.charAt(0) == ';' || s.charAt(0) == '#') // skip comment continue; var m; if (m = s.match(/^\[(.+?)\]/)) { section = m[1]; this.data[section] = {}; } else if ((m = s.indexOf('=')) > 0) this.data[section][s.substring(0, m)] = s.substring(m + 1); } f.Close(); this.loaded = true; } catch (e) { this.loaded = false; } } Ini.prototype = { getValue : function(section, key/*, defValue*/) { if (this.data[section][key] != undefined) return this.data[section][key]; if (this.getValue.arguments.length > 2) return this.setValue(section, key, this.getValue.arguments[2]); return undefined; } , setValue : function(section, key, value) { if (!this.data[section]) this.data[section] = {}; return this.data[section][key] = value; } , removeValue : function(section, key) { delete this.data[section][key]; } , removeSection : function(section) { delete this.data[section]; } , save : function(/* path */) { var path = this.save.arguments.length > 0 ? this.save.arguments[0] : this.path; var f = fso.OpenTextFile(path, 2, true, -2); for (var section in this.data) { f.WriteLine('[' + section + ']'); for (var key in this.data[section]) f.WriteLine(key + '=' + this.data[section][key]); } f.Close(); } }; if (fso.FileExists(baseDir + '\\firefox.exe')) { mozDir = env.Item("APPDATA") + '\\Mozilla'; if (!fso.FolderExists(mozDir)) fso.CreateFolder(mozDir); mozDir += '\\Firefox'; } else if (fso.FileExists(baseDir + '\\thunderbird.exe')) mozDir = env.Item("APPDATA") + '\\Thunderbird'; else { WScript.Echo('Neither firefox.exe nor thunderbird.exe found in this directory.'); WScript.Quit(1); } if (!fso.FolderExists(mozDir)) fso.CreateFolder(mozDir); iniPath = mozDir + '\\Profiles.ini'; var mode; if (WScript.Arguments.Count() > 0) { mode = WScript.Arguments.Item(0); if (mode != 'set' && mode != 'unset') { WScript.Echo('Usage: ' + WScript.ScriptName + ' set|unset'); WScript.Quit(1); } } else { switch(WshShell.Popup( 'Click "Yes" to setup the profile path.\n' + 'Click "No" to remove the profile associated to the profile path.\n' + 'Profile path: ' + profileDir, 0, 'Do you want to setup portable environment?', 3 | 32)) { case 6: mode = 'set'; break; case 7: mode = 'unset'; break; default: WScript.Quit(0); break; } } ini = new Ini(iniPath); if (!ini.data['General']) { if (mode == 'unset') WScript.Quit(0); ini.setValue('General', 'StartWithLastProfile', 1); } found = false; last = 0; oldEntry = -1; for (var i = 0;i < 100;i++) { var section = 'Profile' + i; if (!ini.data[section]) continue; var dir; if (ini.getValue(section, 'IsRelative') == 1) dir = mozDir + '\\' + ini.getValue(section, 'Path'); else dir = ini.getValue(section, 'Path'); dir = dir.replace(/\//g, '\\'); if (dir.toLowerCase() == profileDir.toLowerCase()) { found = true; if (mode == 'unset') ini.removeSection(section); else ini.setValue(section, 'Default', 1); } else if (mode != 'unset') ini.removeValue(section, 'Default'); if (i > 0 && !ini.data['Profile' + last] && ini.data[section]) { ini.data['Profile' + last] = ini.data[section]; ini.removeSection(section); if (ini.getValue('Profile' + last, 'Name') == profileName) oldEntry = last; last++; } else if (ini.data[section]) { if (ini.getValue(section, 'Name') == profileName) oldEntry = i; last = i + 1; } } if (!found) { var section = 'Profile' + (oldEntry >= 0 ? oldEntry : last); ini.setValue(section, 'Name', profileName); ini.setValue(section, 'IsRelative', 0); ini.setValue(section, 'Path', profileDir); ini.setValue(section, 'Default', 1); } ini.save(); if (mode == 'set' && !fso.FolderExists(profileDir)) fso.CopyFolder(baseDir + '\\defaults\\profile', profileDir); |
發表人: | 1abcd [ 2009-06-16, 21:45 ] |
文章主題 : | |
-no-remote -profile 我是覺得用這兩個引數執行就夠用了 現在我是用批次檔開 Fx, 內容如下: 代碼: start xxxxxxxx\Firefox\firefox.exe -no-remote -profile xxxxxxxx\
|
發表人: | JackieKu [ 2009-06-17, 00:46 ] |
文章主題 : | |
1abcd 寫: -no-remote -profile
我是覺得用這兩個引數執行就夠用了 現在我是用批次檔開 Fx, 內容如下: 代碼: start xxxxxxxx\Firefox\firefox.exe -no-remote -profile xxxxxxxx\ 如果不在意不能設定成預設瀏覽器倒是可以這樣用沒錯... 但是如果要很自由的從任何地方都能開正確的profile就有點麻煩 例如在"Firefox還未開啟"的時候在其他軟體點了一個http連結 這個情況除非手動去改registry的參數要不然就破功了 BTW -no-remote 這個參數應該不需要吧? 除非要同時開多個firefox而且用不同的profile... |
發表人: | kazuko [ 2009-06-17, 05:09 ] |
文章主題 : | |
JackieKu 寫: 1abcd 寫: -no-remote -profile 我是覺得用這兩個引數執行就夠用了 現在我是用批次檔開 Fx, 內容如下: 代碼: start xxxxxxxx\Firefox\firefox.exe -no-remote -profile xxxxxxxx\ 如果不在意不能設定成預設瀏覽器倒是可以這樣用沒錯... 但是如果要很自由的從任何地方都能開正確的profile就有點麻煩 例如在"Firefox還未開啟"的時候在其他軟體點了一個http連結 這個情況除非手動去改registry的參數要不然就破功了 BTW -no-remote 這個參數應該不需要吧? 除非要同時開多個firefox而且用不同的profile... 謝謝JackieKu的代碼,這幾天我在試試看3.5pre 另外1abcd說的方法,我之前有試過,不過還是不能預設瀏覽器... 其實綠色版的好處,還可以方便推廣firefox,把套件跟設定都弄好, 然後就可以把打包的壓縮檔扔給朋友自行解壓使用 portable的版本,有人有寫出個小軟體可以解決部份預設瀏覽器問題, 但在某些清況下,還是不能...... 且portable啟動實在有點慢...比ie8、官版Firefox還稍慢 |
發表人: | kazuko [ 2009-06-20, 06:00 ] |
文章主題 : | |
JackieKu 寫: kazuko 寫: 可否提供 把profile目錄指到正確的地方之程式? 目前是用WSH(JScript)實現 把它存成附檔名為js的檔案(例如portable.js)跟firefox.exe放在一起 使用過後檔案目錄結構應該要是這樣 代碼: <DIR>/firefox.exe <DIR>/portable.js <DIR>/profile/ <--- 你的profile設定檔 只有第一次使用或是目錄搬動過的情況才需要執行一次portable.js 也可以用在Thunderbird... 代碼: 太長恕刪程式碼... 請教一下,JackieKu兩個問題? 我自已試用JackieKu提供的程式碼, 測試後,是發現要先開啟firefox.exe一次, 然後在使用portable.js,這樣才能成功套用個人設定檔, 不曉得是不是就是這樣!? 另外,可否改成直接套用個人設定檔而不詢問, 我有看你的程式碼中,有個詢問的部份, 不過也不會改...不曉得可不可以麻煩提供直接套用的~~"" 先謝謝過! |
第 1 頁 (共 2 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |