說說 Wine + QQ 輕聊版 7.7 的安裝步驟

jopen 9年前發布 | 9K 次閱讀 Wine

準備 Wine 環境

wine 版本要求,越新越好,我用的 1.7.55,目前最新是1.8rc2。

刪除或者備份你的 ~/.wine,如果你之前運行過 wine 的話。因為涉及到少量配置,盡量不要讓以前的環境干擾你。

配置 Wine

運行 winecfg,在“應用程序”頁簽底部,“Windows版本”,選擇為"8.1"。8.0可能也是可以的,但我選的是8.1。

設置為 windows 8.1,打開所有外部鏈接,比如 qq 空間等,會使用內置的 IE 瀏覽器(gecko win32 引擎)。如果不喜歡這個行為,可以用 winecfg 修改為"Windows XP",增加一個 QQProtect.exe 設置,將其單獨設置為 "Windows 8.1" 即可。

安裝 QQ 輕聊版

下載安裝

下載 QQ7.7Light.exe,有官方去廣告版我們就用官方去廣告版好了。去官方網站下載。別人做的我信不過。

安裝命令:WINEDEBUG=-all wine ./QQ7.7Light.exe

WINEDEBUG=-all 的目的是避免安裝過程中的各種調試信息和 warning 信息,因為沒必要看。

耐心等待,直到安裝完成。(最后的組件注冊時間會比較長,耐心等待)。安裝過程無任何注意事項。

安裝完成,QQ 登錄窗口出現,先退出即可,因為這時候是無法輸入的(我們需要替換幾個 DLL 才行)。

替換 DLL

首先下載 DLL :riched20.dll 和 iphlpapi.dll。

  • riched20.dll 下載win7版本
  • iphlpapi.dll 下載 windows 2008版本
  • </ul>

    然后替換 DLL:

    cd .wine/drive_c/windows/system32
    mv iphlpapi.dll iphlpapi.dll.bak
    mv riched20.dll riched20.dll.bak

    將下載的兩個dll拷貝到此處。

    修改注冊表

    vi ~/.wine/user.reg

    添加:

    [Software\Wine\DllOverrides] 1447325077 6869640

    time=1d11d37208b6b08

    "iphlpapi"="native" "riched20"="native,builtin" "*qcap"="" "txplatform.exe"="" "txupd.exe"=""</code></pre>

    說明

    1. 禁用 qcap 的原因是“禁用本地攝像頭”(如果有的話),因為 wine 目前的攝像頭處理跟 QQ 所需要調用的接口仍有差距,本地攝像頭打開會崩潰,結果是視頻聊天時如果使用了本地攝像頭會崩潰。禁用后,雖然不能使用本地的視頻,但遠程的視頻可以正常使用。這個問題,可以通過修改wine的代碼來搞定。(有時間再搞吧)。
    2. 替換 riched20.dll,是為了讓“登錄對話框可以輸入”。
    3. 替換 iphlpapi.dll,是避免登錄后的崩潰退出。
    4. 禁用 txplatform.exe,是因為這個進程在 wine QQ 退出后不退出,對于 Windows 倒是無所謂,對于 Linux 來說,這意味著后臺跑著一堆 wine 進程。
    5. 禁用 txupd.exe,是因為它在后臺定期檢查更新時會偶發崩潰,不影響使用,但總彈“wine 崩潰對話框”也是不好的。
    6. </ol>

      替換字體

      如果不使用 SimSun 字體,其實沒必要使用 simsun,更沒必要使用什么 CoreFont

      wine 的字體位于 /usr/share/wine/fonts/ 我只保留了 DejaVu 系列 ttf 字體和 SourceHanSansCN-Normal.otf,對于中文環境來說已經足夠了。

      因為 Windows 下的軟件字體調用比較亂,有時候會 fallback 到 SimSun 或者“宋體”,替換的目的是“當軟件請求宋體時,使用我們的替代字體”,這可以解決到幾乎所有的"中文方框問題"。如果不做替換(也沒有使用 simsun),qq 的某些界面字體可能會顯示成“方框”。

      替換方法是:

      找到 ~/.wine/user.reg 中的 [Software\\Wine\\Fonts\\Replacements],如果沒有就自己加入。

      [Software\Wine\Fonts\Replacements] 1448856028 1650250

      time=1d12b23a623844a

      "NSimSun"="\x601d\x6e90\x9ed1\x4f53 CN Normal" "SimSun"="\x601d\x6e90\x9ed1\x4f53 CN Normal" "\x5b8b\x4f53"="\x601d\x6e90\x9ed1\x4f53 CN Normal" "\x65b0\x5b8b\x4f53"="\x601d\x6e90\x9ed1\x4f53 CN Normal"</code></pre>

      后面的字提名按照你的實際情況來寫。記得以后不用再裝 simsun 或者什么 winetricks corefont 了,這個方法適用于所有字體顯示為“方框”的情況,比如“網易云音樂”客戶端。

      運行QQ

      cd ~/.wine/drive_c/Program Files/Tencent/QQLite/Bin
      WINEDEBUG=-all wine ./QQ.exe

      如果你系統的 wine 會自建菜單項,也可以使用菜單項運行。

      保留環境

      wine 可以通過 WINEPREFIX 變量保留多個 wine 環境。

      mv ~/.wine QQLite
      cd QQLite

      添加一個腳本“qq”,內容如下:

      #!/bin/bash
      EXEPATH=$(cd `dirname $0`; pwd)
      export WINEPREFIX=$EXEPATH
      export WINEDEBUG=-all
      export LANG=zh_CN.UTF-8
      export LC_ALL=zh_CN.UTF-8
      cd "$EXEPATH/drive_c/Program Files/Tencent/QQLite/Bin"
      wine QQ.exe

      自己保存好 QQLite 這個目錄,以后可以放在任何地方運行。視頻單向,語音雙向,演示桌面等都是可以正常使用的。

      殘留問題

      理論上這些可以通過修改 wine 代碼解決

      • 不能保存密碼和自動登錄。
      • 密碼輸入框有點難點,用彈出小鍵盤輸入或者輪換點擊賬號密碼框1,2次就可以輸入了。
      • 本地攝像頭被禁用(暫時的,以后都會好的)
      • 某些窗口,比如“文件列表窗口”不接受窗口管理器管理,點開后可能“X”不掉,偶爾可以用“系統任務欄”關閉窗口,無礙,少點就可以了,如果 Hang 了可以退出重新登錄。
      • 離線后無法再上線,只能退出重新登錄。
      • 其他各種小問題。
      • </ul>

        如果只是正常的使用聊天功能,一整天加休眠等應該都沒什么問題,我還沒遇到拖慢系統,崩潰,無法退出等問題。

         本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
         轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
         本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!