陌宇凌锋
发表于 2018-3-12 20:09:50
本帖最后由 陌宇凌锋 于 2018-3-12 20:10 编辑
一直不知道有这种软件,每次都是一个一个自己看到底有哪些字体,感谢楼主{:8_706:}
陌宇凌锋
发表于 2018-3-12 20:10:23
卡了,发了两遍,编辑了
lee850220
发表于 2018-3-17 17:38:36
本帖最后由 lee850220 于 2018-3-17 17:55 编辑
請問這個程式會因為安裝過多字型導致程式崩潰嗎,
目前Fonts內有2000多個字體,
每次開啟後顯示完第一次,再安裝一個新的字幕重新讓他列出字幕的時候就崩潰了。
程式開啟運行第一次都會出現記憶體不足,然後重新再點一次就會正常顯示,猜測可能是有個wait()時限到了還來不及讀取完整個資料夾導致第一次都會失敗?
然後我發現好像每次開啟都會重新讀取整個字體資料夾,因為只要打開程式就會有大約2GB的讀取量自Fonts資料夾,跟大約800MB的寫入量寫到FontCache的資料夾。初步研究這個讀寫動作跟WPF的Windows Font Cache Service有關。
我只是把可能發生問題的地方列出來供參考~麻煩你了
tonyhsie
发表于 2018-3-17 19:34:29
本帖最后由 tonyhsie 于 2018-3-18 02:09 编辑
lee850220 发表于 2018-3-17 17:38
請問這個程式會因為安裝過多字型導致程式崩潰嗎,
目前Fonts內有2000多個字體,
每次開啟後顯示完第一次, ...
Windows 7 會有這種現象,Windows 10 似乎不會,這問題我也沒有好的解決方法
這屬於 .Net Framework 在 Win7 環境的問題
有些字型資訊無法直接透過 WPF 取得
必須開啟字型檔案來確認,所以每次開啟程式後,第一次執行任一功能時,都會開啟字型檔案
lee850220
发表于 2018-3-21 00:01:44
本帖最后由 lee850220 于 2018-3-21 00:27 编辑
請問這個程式會因為安裝過多字型導致程式崩潰嗎,
目前Fonts內有2000多個字體,
每次開啟後顯示完第一次,再安裝一個新的字幕重新讓他列出字幕的時候就崩潰了。 ...
忘記附註操作環境:
Windows 10 1709 build 16299.309 企業版 x64
2018/03/21
我把FontCache的路徑改到非系統碟後,讀寫問題已經解決,目前只剩下runtime error(只有剛運行第一次會出現),記憶體的問題也解決了,重複Run也不會崩潰了。
完整錯誤訊息詳見附檔。
tonyhsie
发表于 2018-3-21 00:53:13
lee850220 发表于 2018-3-21 00:01
忘記附註操作環境:
Windows 10 1709 build 16299.309 企業版 x64
初步看來是你系統安裝的字型檔案中,有些路徑有不合法字元
你可以用 RegEdit 去看 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 這裡面各項的路徑
看是哪一個有問題
或者是在 ListAssFonts 裡按 F12
5. 按F12/Menu鍵可導出 debug 用的純文字文件,方便報錯/除錯
把 debug 文件發上來
lee850220
发表于 2018-3-22 13:54:57
tonyhsie 发表于 2018-3-21 00:53
初步看來是你系統安裝的字型檔案中,有些路徑有不合法字元
你可以用 RegEdit 去看 HKEY_LOCAL_MACHINE\S ...
從註冊表裡面發現有許多字體的名字是亂碼,都是文鼎系列的,修正之後已經沒有問題,雖然跑列表的時候會短暫出現記憶體不足,但是讀取完畢就會自動刷新恢復正常,基本上不影響使用!
感謝解答
tonyhsie
发表于 2018-3-22 17:36:48
lee850220 发表于 2018-3-22 13:54
從註冊表裡面發現有許多字體的名字是亂碼,都是文鼎系列的,修正之後已經沒有問題,雖然跑列表的時候會短 ...
針對這個問題作了一個小改版
v180322
1. 為避免程式在掃描系統已字裝字型時中斷,跳過那些含有不合格字元的字型 Reg key (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts)
lee850220
发表于 2018-3-23 15:00:47
本帖最后由 lee850220 于 2018-3-23 15:03 编辑
我又帶問題來了~
圖中紅框應該是同一個字體吧?
可是居然被安裝了兩次,分別被不同的名稱記錄在註冊表內。
-----------------------我是分隔線-----------------------
還有一些字體明明已經安裝過了,可是重複安裝並不會提示,反而重複安裝然後多了很多重複的檔案在Fonts裡面
這兩個問題要怎麼解決?
tonyhsie
发表于 2018-3-23 15:53:16
lee850220 发表于 2018-3-23 15:00
我又帶問題來了~
圖中紅框應該是同一個字體吧?
如果你是用 Windows 內建的安裝字型功能,當你安裝同一套字型時,應該都會提示
惹是用第三方軟體裝的字型,可能就沒提示了,才會裝到一堆重複
我建議安裝或反安裝,都盡量用 Windows 內建功能,比較不會有這些問題
解決也只能手動一個個處理了,我也不曉得有沒有其它更快的方法
{:4_677:}