在windows7下玩老遊戲花屏的解決辦法
地獄門神
在windows7下玩老遊戲,如星際爭霸,會出現花屏的現象。
這個現象的原因是win7的directdraw的256色調色盤的相容性問題,據說是預設配置下,程式無法獲取調色盤鎖。
乙個簡單的解決方法是殺掉explorer程序,估計這樣就會停止桌面主題修改調色盤。
但是這不是乙個一勞永逸的辦法。
經過在網上搜尋,發現有這樣乙個解決方案。
directdraw有乙個登錄檔項,用於開啟相容模式,位於
hkey_local_machine\software\wow6432node\microsoft\directdraw\compatibility
(win7 x64)
hkey_local_machine\software\microsoft\directdraw\compatibility
(win7 x86)
在這個登錄檔項下新增需要啟用相容模式的exe,如:
windows registry editor version 5.00
[hkey_local_machine\software\wow6432node\microsoft\directdraw\compatibility\starcraft116]
"name"="starcraft.exe"
"id"=hex:ca,89,65,49
"flags"=hex:00,08,00,00
(win7 x64)
就可以使得對應的程式執行於相容模式下。
這三個鍵值中,name是程式的檔名,flags是常量,而id是程式的時間戳。
以星際爭霸1.161為例,我們可以使用cff explorer開啟starcraft.exe,然後在nt headers-file header中找到timedatestamp一項,發現其值為496589ca。
將該整數倒過來寫作低位元組優先的形式(little-endian),就是ca,89,65,49,這就是登錄檔中的id值。
但是我驗證的時候發現不一致。
通過此方法,星際爭霸已經可以在我的機器上正常執行。
此外,還有一種方法是通過hook掉directdraw的函式來完成的,見
不過這個實現是通過軟體方法來進行 索引->顏色 轉換的,沒有使用到顯示卡加速,在執行星際爭霸時比較卡。
但這種方法只需要在程式資料夾下放入乙個ddraw.dll的檔案就可以實現,比較方便。
也許以後會有人通過directx或者opengl來模擬directdraw的功能,能夠比較完善的解決這個問題。
OpenCV在Windows7下的編譯
使用opencv庫有2個選擇 安裝編譯好的庫,或者從原始檔編譯自己的庫。前者操作起來比較簡便,但需要用到microsoft visual studio ide。這裡我們選擇使用編譯好的現成的庫。2 設定opencv的環境變數。環境變數將會儲存opencv庫的目錄資訊,這在我們的工程中將會用到。開啟乙...
Windows 7 下玩遊戲不能全屏?
許多使用者反映,在 windows 7 環境下,全屏遊戲時兩邊螢幕都是黑的,只好視窗執行了,很是不爽.如果您也遇到了類似的情況,不妨試一試以下兩種解決方法。方法一 更改顯示卡設定 更新到最新的顯示卡驅動。開啟開始選單,右鍵 計算機 選擇 管理 收起這個展開這個 開啟 裝置管理器 顯示介面卡 xx顯示...
STC ISP在Windows 7下使用方法
無需安裝 或者 需要安裝 其實不管是win7的32位還是64位,都可以使用這個方法來註冊 將mscomctl.ocx mscomm32.ocx comdlg32.ocx msstdfmt.dll等需要註冊的檔案複製到windows system32 目錄下 64位系統路徑為 c windows sy...