設(shè)備型號(hào):Acer TravelMate P246-MG 商務(wù)本。
癥狀:運(yùn)行Windows 7和Office時(shí)正常,偶爾運(yùn)行一些新程序時(shí)屏幕閃爍。開始以為是這些程序的問題,沒有在意。后來在使用該機(jī)作軟件開發(fā)時(shí)發(fā)現(xiàn),可視化界面設(shè)計(jì)時(shí)因屏幕閃爍,界面設(shè)計(jì)幾乎無法進(jìn)行。程序編譯后運(yùn)行時(shí)也不停閃爍,界面無法看清,窗口切換時(shí)甚至閃爍出現(xiàn)前一個(gè)窗口內(nèi)容,感覺是感染了某種未知病毒。在該機(jī)編譯的一程序啟動(dòng)時(shí)界面閃爍如圖1所示。
圖1 軟件運(yùn)行時(shí)屏幕閃爍
而該軟件正常運(yùn)行的畫面如圖2所示。
首先進(jìn)行病毒檢查,使用了多種殺病毒軟件檢測(cè)都沒有問題,看來不是病毒的問題。
其次分析開發(fā)工具,軟件開發(fā)時(shí)使用的是RAD Berlin版,該版本同時(shí)支持兩種類型的組件——VCL組件和FMX組件,用VCL開發(fā)的組件編譯后運(yùn)行基本正常,閃爍很少或不閃爍;用FMX組件開發(fā)的軟件閃爍的非常厲害,幾乎無法運(yùn)行。開始以為是FMX組件的問題,但是編譯好的程序在其他的電腦上能正常運(yùn)行,不閃爍,編譯成Android代碼后在Android手機(jī)上也能正常運(yùn)行。分析到此,似乎閃爍的原因是系統(tǒng)硬件問題,與軟件無關(guān)。
最后考慮這臺(tái)商務(wù)本的硬件,CPU、內(nèi)容、硬盤都是大路貨,沒有什么出奇之處,但是顯卡卻是為了兼顧功耗與性能,配置為既有集成顯卡,也有高性能顯卡。
是不是因?yàn)閮煽铒@卡導(dǎo)致的屏幕閃爍呢?于是分析研究該機(jī)與顯示有關(guān)的設(shè)置部分。右擊桌面顯示有關(guān)設(shè)置。
對(duì)其中的圖形屬性、圖形選項(xiàng)逐個(gè)試驗(yàn)后,閃爍癥狀沒有改善,于是把目標(biāo)對(duì)準(zhǔn)了顯卡廠家NIADIA的設(shè)置功能——“NVIDIA控制面板”,進(jìn)入面板后畫面(如圖3)。
圖2 正常運(yùn)行的軟件畫面
第一項(xiàng)和第三項(xiàng)都沒有看出什么名堂,最后決定深入研究第二項(xiàng)“管理3D設(shè)置”。進(jìn)入后畫面。對(duì)“首選圖形處理器”項(xiàng)目進(jìn)行設(shè)置,無論是選擇“自動(dòng)選設(shè)備為“集成圖形”,保存后退出。使用一下畫面閃爍的程序,畫面竟然不閃爍了。接著又把首選圖形處理設(shè)備設(shè)為“高性能NIADIA處理器”,程序運(yùn)行也正常,到此問題完美解決。擇”、“高 性能 NVIDIA處理器”還是“集成圖形”并開關(guān)下面的功能項(xiàng)目,閃爍情況照舊。
圖3 NVIDIA控制面板
百思不得其解之時(shí),偶然點(diǎn)擊了上圖中“程序設(shè)置”頁面,看到里面都是一些與游戲有關(guān)的畫面,覺得與程序閃爍關(guān)系不大。
抱著試試看的態(tài)度,想看一下把畫面閃爍的程序添加進(jìn)去后有什么效果,于是單擊“添加”。
把編譯好的程序可執(zhí)行文件(.exe文件)加入列表中,為其選擇首選圖形處理
這個(gè)故障往往會(huì)給人一種錯(cuò)覺,問題是軟件或者病毒引起的,應(yīng)該在程序里面找問題,筆者為此走了不少彎路。查閱了FMX組件的幫助文檔,沒有找到一點(diǎn)線索,在一些社區(qū)尋求高手幫助也沒有結(jié)果。最后硬中生軟,從硬件設(shè)置中發(fā)現(xiàn)了蛛絲馬跡,通過給程序指定首選圖形處理設(shè)備解決了問題。
這個(gè)型號(hào)的筆記本電腦使用兩種圖形處理設(shè)備協(xié)同工作,可能是操作系統(tǒng)對(duì)此管理不完善或者FMX組件對(duì)顯示處理有缺陷,沒有指定首選圖形處理設(shè)備,兩個(gè)圖形處理設(shè)備爭相為程序服務(wù),結(jié)果造成顯示不正常,后一窗口里顯示前一個(gè)窗口的內(nèi)容。