修改螢幕解析度 Part 2

上次嘗試修改被鎖死的網咖螢幕解析度後,再次遭遇困難,有些網咖很詐的連 nVidia 的控制程式都不給執行,common pathway 被 block 掉,所以只好另想辦法。 一開始找了一些 third-party 的軟體,可以在 windows 上直接改解析度,不過一直沒有理想中意的,不是功能不完全就是檔案太大,還有跑不起來的,於是便放棄這條路,意外的發現有個僅僅只有 5kB 大小的命令列程式 — QRes,要是有辦法打開命令提示字元之類的 console,就可以用指令模式切換解析度。 用 /L 參數會列出所有支援的解析度,之後再手動指定便可,例如我現在用的螢幕是 19 吋的寬螢幕,最大解析度為 1440×900,使用如下:

  qres /x:1440 /y:900 /c:32 /r:60

但這樣有個缺點:每次我都必須裝好之前提過的 4NT 這個 console 程式,後來便決定將它寫成個 batch file,這樣只要在檔案總管裡點兩下就 ok 了。 這還有另一個缺點:沒辦法根據不同螢幕大小自動偵測,所以又把 batch file 修改一下,這時候實在是要抱怨 windows 內建的工具程式不怎麼夠用,我只好去抓了

win32 版本的 awk 來用,經過好一番測試後,結果如下:(註:在 win32 下要接成一行才有用)

  qres /l | awk "END{ split($1,t,\"x\"); x=t[1]; y=int(t[2]); c=$2; r=$5; cmd=sprintf(\"qres /x:%%d /y:%%d /c:%%d /r:%%d\",x,y,c,r); system(cmd); }"

照理說,現在只要輕鬆點兩下,就可以把螢幕解析度放到最大啦~接下來就看看還會不會遇到什麼奇怪的狀況囉!

2008.10.06

PS. 話說原本的 4NT 也可以扔掉了,其實只要寫個 batch file 去呼叫 cmd.exe 就可以解決我原本的問題啦:

  %SYSTEMROOT%\system32\cmd.exe