MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2017-09-19, 21:40

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 21 篇文章 ]  前往頁數 12  下一頁
發表人 內容
文章發表於 : 2009-03-17, 19:11 
離線
[社群版本維護者]
頭像

註冊時間: 2004-05-24, 15:50
文章: 826
來自: 資源回收筒
圖檔
由於先前的 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 下載。


附加檔案:
launcherlayout.png [12.29 KiB]
被下載 1768 次
portablefirefox_.png [26.78 KiB]
被下載 1778 次

_________________
人必先自重,而後人重之。


最後由 冰漾 於 2009-09-01, 01:41 編輯,總共編輯了 5 次。
回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre) Gecko/20090306 Shiretoko/3.1b4pre (ayakawa PGU)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-03-30, 18:59 
離線

註冊時間: 2009-03-30, 18:54
文章: 2
剛試用了您的版本 發現兩個小問題
我用的firefox版本是 tete009 3.1B3
1.關閉後 重啟firefox 不會自動開啟上次關閉時有打開的分頁
2.無法設為預設瀏覽器

不曉得您是否有遇到此類問題 可否幫助我解決呢
thanks! ^^


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW; rv:1.9.1b3) Gecko/20090326 Shiretoko/3.1b3 (tete009 SSE PGO)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-03-30, 19:16 
離線

註冊時間: 2009-03-30, 18:54
文章: 2
不好意思補充一下
剛發現取消 "檢查是否為預設瀏覽器" 此選項後
已可正常記憶上次打開的分頁

但仍無法設為預設瀏覽器... :cry:

---

對了!FirefoxLoader這個執行檔 原本的圖示就有捷徑的小箭頭
丟到快速啟動列... 有點影響美觀 有空的話可以麻煩您更新一下嗎^^


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW; rv:1.9.1b3) Gecko/20090326 Shiretoko/3.1b3 (tete009 SSE PGO)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-04-05, 16:36 
離線

註冊時間: 2005-02-26, 08:56
文章: 16
感覺比firefox portable啟動快,檔案小多了,
用起來不錯,thanks


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b3) Gecko/20090330 Shiretoko/3.1b3 (.NET CLR 3.5.30729) (tete009 SSE PGO
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-04-05, 18:04 
離線
頭像

註冊時間: 2008-01-15, 14:11
文章: 448
followbliss 寫:
對了!FirefoxLoader這個執行檔 原本的圖示就有捷徑的小箭頭
丟到快速啟動列... 有點影響美觀 有空的話可以麻煩您更新一下嗎^^


因為有版權問題,所以才這樣做的吧?


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-04-11, 15:44 
離線
[社群版本維護者]
頭像

註冊時間: 2004-05-24, 15:50
文章: 826
來自: 資源回收筒
預設瀏覽器可能沒辦法,系統會指向 Firefox 的主程式,還在尋找可能的解決辦法...

不過 Portable 本來就不是用來當系統主要的瀏覽器...

_________________
人必先自重,而後人重之。


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090402 Minefield/3.6a1pre (ayakawa PGU)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-10, 04:17 
離線

註冊時間: 2008-12-07, 21:05
文章: 78
原本想說用Resource Hacker去更改冰樣大的FirefoxLoader.exe之圖示,
不過修改後,就無法使用了,不曉得冰樣大能不能修改成可以自定圖示?(自已使用的)

自已使用比較Firefox Portable,啟動速度稍慢,冰樣版的就快多了~


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1pre) Gecko/20090523 Shiretoko/3.5pre (ayakawa PGU)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-10, 23:46 
離線
[社群版本維護者]
頭像

註冊時間: 2004-05-24, 15:50
文章: 826
來自: 資源回收筒
kazuko 寫:
原本想說用Resource Hacker去更改冰樣大的FirefoxLoader.exe之圖示,
不過修改後,就無法使用了,不曉得冰樣大能不能修改成可以自定圖示?(自已使用的)

自已使用比較Firefox Portable,啟動速度稍慢,冰樣版的就快多了~
因為加過殼了,所以沒辦法直接改 icon。

也因為加過殼,所以才會比較小...

_________________
人必先自重,而後人重之。


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090402 Minefield/3.6a1pre (ayakawa PGU)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-15, 02:58 
離線

註冊時間: 2005-04-25, 18:44
文章: 166
冰漾 寫:
預設瀏覽器可能沒辦法,系統會指向 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的解決方案


最後由 JackieKu 於 2009-06-16, 21:06 編輯,總共編輯了 3 次。

回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW; rv:1.9.1) Gecko/20090612 Firefox/3.5 (.NET CLR 3.0.30729)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-15, 17:24 
離線

註冊時間: 2008-12-07, 21:05
文章: 78
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目錄指到正確的地方之程式?


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.9pre) Gecko/2009032812 GranParadiso/3.0.9pre (.NET CLR 3.5.30729) (ayak
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-16, 21:18 
離線

註冊時間: 2005-04-25, 18:44
文章: 166
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);


最後由 JackieKu 於 2009-07-04, 22:29 編輯,總共編輯了 2 次。

回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW; rv:1.9.1) Gecko/20090615 Firefox/3.5 (.NET CLR 3.0.30729)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-16, 21:45 
離線
[MozTW 版主群]
頭像

註冊時間: 2006-01-29, 23:45
文章: 1417
-no-remote -profile
我是覺得用這兩個引數執行就夠用了
現在我是用批次檔開 Fx, 內容如下:
代碼:
start xxxxxxxx\Firefox\firefox.exe -no-remote -profile xxxxxxxx\

_________________
倉頡輸入法


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-17, 00:46 
離線

註冊時間: 2005-04-25, 18:44
文章: 166
1abcd 寫:
-no-remote -profile
我是覺得用這兩個引數執行就夠用了
現在我是用批次檔開 Fx, 內容如下:
代碼:
start xxxxxxxx\Firefox\firefox.exe -no-remote -profile xxxxxxxx\

如果不在意不能設定成預設瀏覽器倒是可以這樣用沒錯...
但是如果要很自由的從任何地方都能開正確的profile就有點麻煩
例如在"Firefox還未開啟"的時候在其他軟體點了一個http連結
這個情況除非手動去改registry的參數要不然就破功了

BTW
-no-remote 這個參數應該不需要吧?
除非要同時開多個firefox而且用不同的profile...


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW; rv:1.9.1) Gecko/20090615 Firefox/3.5 (.NET CLR 3.0.30729)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-17, 05:09 
離線

註冊時間: 2008-12-07, 21:05
文章: 78
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,把套件跟設定都弄好,
然後就可以把打包的壓縮檔扔給朋友自行解壓使用 :D
portable的版本,有人有寫出個小軟體可以解決部份預設瀏覽器問題,
但在某些清況下,還是不能......
且portable啟動實在有點慢...比ie8、官版Firefox還稍慢 :?


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1pre) Gecko/20090523 Shiretoko/3.5pre (ayakawa PGU)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2009-06-20, 06:00 
離線

註冊時間: 2008-12-07, 21:05
文章: 78
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,這樣才能成功套用個人設定檔,
不曉得是不是就是這樣!?

另外,可否改成直接套用個人設定檔而不詢問,
我有看你的程式碼中,有個詢問的部份,
不過也不會改...不曉得可不可以麻煩提供直接套用的~~""

先謝謝過!


回頂端
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 21 篇文章 ]  前往頁數 12  下一頁

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群