網頁

2010年5月21日 星期五

程式設計師在想什麼? - Windows跑一陣子就要重灌?

我發現我越來越懂程式設計師會玩什麼把戲在硬體上了,
應該去應徵軟體測試公司?

例子一是我那個老舊的電視卡,
我發現我用其他程式開電視卡聲音都會爆音,
但用附的舊程式就不會,
我覺得舊的電視卡程式的行為很奇怪,
每次啟動都會把聲音固定在某個大小,
關閉時就把聲音還原,

結果被我猜中因為他不會修改driver內的聲音,
或應該是說tv tuner driver內設定的聲音大小沒辦法儲存. (或他每次都會reset)
所以就在應用程式寫了一個每次開啟來就把聲音調小,
程式關掉再還原聲音,
結果我現在也是如法炮製,
先開看電視軟體,
再用一個特殊的nircmd程式控制看電視時的聲音大小,
如此就解決了爆音的問題.

第二個例子是,
是一直困擾我的GTX260卡,
他的問題是裝了182.50之後的driver就會不定時銀幕開機時全黑抓不到,
更新完bios以後還是一樣,
(我還回報技嘉, 得到的答案當然叫你檢測, 沒多的顯卡@@)

我大概有一點知道銀幕會錯亂的原因是出在182.50之後的版本,
我去看了182.50之後的changlog,
182.50之後改變最大的是配合新的windows對銀幕EDID的偵測,
整個在registry的規格完全不一樣.

假如裝過舊版的驅動程式, 再裝上新的(不管多舊或多新?).
或你拔插銀幕, 都會啟動重新偵測銀幕,
沒有插東西的會產生一個奇怪的non-pnp monitor,
反覆幾次就會搞到最後這張表很容易就亂掉.

棘手的不是亂掉問題,
是windwos的設計,
windows不會讓你直接在registry砍銀幕設定檔,
一定要在新增移除硬體砍,
但裝了新的驅動程式, 舊的驅動程式產生的垃圾在會看不見.

假如你以為你的驅動程式有問題,
再裝一個新的上去以後,
舊的銀幕設定檔他不會幫你砍掉,
累積下來就是一堆爛掉的銀幕設定檔 (我忘記抓張圖讓大家看一下什麼叫做整個爛掉)

一整個惡性循環,
驅動程式就在哪邊以為你有一堆銀幕, 每次開機他選到的顯示**可能**會是錯的,
所以時好時壞.

解決的方法就是在重裝驅動程式前,
要先確認所有銀幕的設定檔都被刪除,
刪除完後也不要用nvidia的反安裝,
(有時會恢復windows內建driver又幫你偵測一次銀幕, 又爛掉)
直接用driver swapper砍光driver直接重開機,
這樣才是最乾淨的初始狀態,
裝了新的driver讓他重新偵測所有銀幕就不會有問題了.

ps. 另外最好把nVidia裝好後的Service關閉, 因為那個NVIDIA Display Driver Service也會亂偵測銀幕

或許電腦的組成比較單純如: 單銀幕, 沒有舊款的硬體,
會比較少這樣的問題, 我電腦的組成是比較複雜一點.

但其實這也說明了很多更新其實越更新越糟的原因,
因為舊的沒移除乾淨,
新的程式也沒考慮到舊的有一些怪資料砍不掉,
可能是出自於windows的保護機制.

所以windows一陣子要重裝,才有這派講法,
但我不認為重裝問題不會再發生.
除非裝好就整個封起來都不要更新不要動,
每個人使用電腦的習慣不同,
也造成了寫程式的人也是難為阿.

沒有留言:

張貼留言