首頁 > 軟體

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

2020-06-16 17:49:28

準備 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。

然後替換 DLL:

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

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

 

修改登錄檔

  1. vi~/.wine/user.reg

新增:

  1. [SoftwareWineDllOverrides]14473250776869640
  2. #time=1d11d37208b6b08
  3. "*iphlpapi"="native"
  4. "*riched20"="native,builtin"
  5. "*qcap"=""
  6. "txplatform.exe"=""
  7. "txupd.exe"=""

 

說明

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

 

替換字型

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

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

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

替換方法是:

找到 ~/.wine/user.reg 中的 [SoftwareWineFontsReplacements],如果沒有就自己加入。

  1. [SoftwareWineFontsReplacements]14488560281650250
  2. #time=1d12b23a623844a
  3. "NSimSun"="x601dx6e90x9ed1x4f53 CN Normal"
  4. "SimSun"="x601dx6e90x9ed1x4f53 CN Normal"
  5. "x5b8bx4f53"="x601dx6e90x9ed1x4f53 CN Normal"
  6. "x65b0x5b8bx4f53"="x601dx6e90x9ed1x4f53 CN Normal"

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

 

執行QQ

  1. cd~/.wine/drive_c/ProgramFiles/Tencent/QQLite/Bin
  2. WINEDEBUG=-all wine ./QQ.exe

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

 

保留環境

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

  1. mv~/.wine QQLite
  2. cdQQLite

新增一個指令碼“qq”,內容如下:

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

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

 

殘留問題

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

  • 不能儲存密碼和自動登入。
  • 密碼輸入框有點難點,用彈出小鍵盤輸入或者輪換點選賬號密碼框1,2次就可以輸入了。
  • 本地攝像頭被禁用(暫時的,以後都會好的)
  • 某些視窗,比如“檔案列表視窗”不接受視窗管理器管理,點開後可能“X”不掉,偶爾可以用“系統工作列”關閉視窗,無礙,少點就可以了,如??? Hang 了可以退出重新登入。
  • 離線後無法再上線,只能退出重新登入。
  • 其他各種小問題。

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

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-12/125686.htm


IT145.com E-mail:sddin#qq.com