Google
 

星期五, 12月 26, 2014

Windows 8.1 Wifi自動重新啟動的方法

Windows 8的Wifi問題真的很多,之前常發生的是"連線能力受限",然後不知何時開始,乾脆就直接斷線,或是睡眠中醒來後,網路卡就被停用掉了。

之前介紹的 Windows 8連線能力受限的解決方法 也變得不管用了,因為根本找不到這個裝置,所以用netsh去停用或啟用連線也變得完全沒有作用。

手動的解決方式,是打開裝置管理員,然後將無線網卡停用後再重新啟用。

但每次要手動做這個動作,真的很麻煩。所以又研究了一下如何把這個動作變成自動執行。

當網路卡失效時,在事件檢視器的應用程式中會看到一個錯誤,如下:



例用這個事件,觸發一個自動將網卡關閉再重開的動作。
剩下的問題就是如何用指令的方式重啟網卡?

首先要下載WDK。在這個網頁裡點選Download WDK 8下載WDK安裝程式。
安裝WDK後,在 C:\Program Files (x86)\Windows Kits\8.0\Tools\x64\ 目錄下可以找到Device Console程式 devcon.exe。

有了Device Console程式後,接著要找出網卡的識別碼。在裝置管理員中,在網卡上按右鍵,選"內容",然後選擇 "詳細資料",再選"硬體識別碼",如下:


在這個例子裡,網卡的識別碼為 "PCI\VEN_8086&DEV_08B2"。
以管理員身份執行命令列,然後輸入下列指令即可關閉網卡:

"C:\Program Files (x86)\Windows Kits\8.0\Tools\x64\devcon.exe" disable "PCI\VEN_8086&DEV_08B2"

啟用網卡的指令如下:
"C:\Program Files (x86)\Windows Kits\8.0\Tools\x64\devcon.exe" enable "PCI\VEN_8086&DEV_08B2"

將這兩行指令設成一個批次檔,以管理員的身份執行就可以自動執行網卡重啟的動作。

最後,用前一篇所介紹的方式,在工作排程器中設定當發生網卡失效的事件時,就自動重啟網卡。



星期六, 7月 12, 2014

Windows 8 Wifi 連線能力受限的解決方式

Windows 8的Wifi常常莫名其妙罷工,三不五時用到一半就突然變成受限制的連線,wifi變成無法連線。不只使用中三不五時會發生,睡眠後醒來也常常這樣。這麼明顯的問題,不知微軟為什麼拖了那麼久還搞不定?
每次遇到這種問題都要很鴕鳥地把wifi關掉再重開一次,讓wifi重抓IP。
因為發生機率實在太高了,乾脆弄一個批次檔自動執行wifi關閉和重開的動作,內容如下:

netsh interface set interface name="Wi-Fi" disable
netsh interface set interface name="Wi-Fi" enable

把這個內容存在一個.bat或.cmd檔內,每次wifi出問題時,只要用管理員身份執行這個批次檔即可。

再分析wifi罷工時,由於連線出現問題,因此都會發生DNS名稱解析逾時的狀況。在系統的事件檢視器中如下:


利用這個特性,我們用工作排程器定義一個觸發事件,每當DNS發生解析逾時的情況,第一個懷疑就是wifi又出狀況了,所以就自動把wifi關掉再重開一次。

打開"電腦管理",在工作排程器中建立一個工作,如下:

名稱隨自己高興取,注意執行工作的使用者帳戶必需有管理員的身份。設定"不論使用者登入與否均執行"。

解發程序設定在系統記錄裡發生由DNS Client Events發出1014(即DNS解析逾時)事件時自動觸發。

觸發的動作就是執行上述的開關wifi批次檔。把批次檔放在根目錄下,不要放在使用者目錄裡,以免去因權限產生的問題。

設定好之後,只要wifi罷工,排程器就會自動把wifi重開,讓wifi順利繼續工作了!


8/15補充:

有網友反應這個方法工作狀況不如預期,在這做補充說明。
當然,看起來這不是簡單的問題,所以我只能提供一個可能方向,讓大家可以有個方向去找找看問題可能出在哪裡。

首先,某些電腦在開關wifi後仍然有連線受限的問題。
我不確定您的情況是否如下圖:


如果是的話,那不用擔心。因為我的電腦上也是這樣,但重點是網路使用是沒問題的。
如果windows下方的task bar上的網路符號出現驚嘆號那才是無法連線,這時做wifi開關的動作應該是有效的。

其次,在指令中的name裡所用的名稱,確實在某些中文版機器上可能要用 "無線網路連線"。
至於到底該用什麼名稱,請打開控制台裡的 "網路連線" 看看你的無線網路是顯示什麼名稱,若它顯示 "Wi-Fi" 就用 "Wi-Fi";若是顯示 "無線網路連線" 就用 "無線網路連線"。



最後一個問題,當發生DNS Client Events不會觸發開關Wifi的批次檔,這個問題看起來比較複雜一點。
首先請確認一下執行工作的帳戶是否有管理員身份,並確定 "不論使用者登入與否均執行"。
然後在觸發程序中,確認來源和事件識別碼都設定正確,並且勾選 "已啟用",表示啟用這個觸發條件。
如果你的設定都是正確的,卻還是看不出它有觸發,請把你的工作的歷程記錄打開。
接著,先手動觸發看工作是否能順利執行,這在歷程記錄裡會看到一個 "由使用者觸發的工作"。
若手動觸發可以順利完成,接著你必需故意製造觸發條件(DNS Client Events, 以我的電腦來說,睡眠後再醒來很容易就產生這個事件),再回到歷程記錄裡看看實際有沒有觸發。

如下圖,在系統記錄中,8/15 11:01:13、8:52:55、8:23:53所發生的DNS Client Events,在工作歷程記錄裡分別在11:01:14、8:52:56、8:23:54都有被正確觸發。


如果繼續往下找,還有很多這樣相對應的記錄,表示DNS Client Events都有觸發所設定的工作。



星期一, 4月 21, 2014

Windows 8 高解析度環境中 Chrome 模糊的解決方式

許多人抱怨Chrome在Windows 8的高解析螢幕下字體都變模糊了, 其實不只是字體, 連UI(使用者界面)也都是糊的。


要解決這個問題說難不難, 只要幾個步驟設定即可。

首先, 在Chrome的桌面圖示上按右鍵, 選內容->相容性, 如下:


































將 "在高DPI設定時, 停用顯示調整值" 打勾。
這個設定不只對Chrome有效, 在Windows 8中只要應用程式的顯示變糊, 都可以試試這招。

設定完後, 重新開啟Chrome, 你會發現Chrome的UI和網頁內容都變清楚了。








可是, 因為解析度太高了, 所以字變得很小。
這時請在Chrome的網址上輸入 "chrome://flags" 按下Enter, 然後找到HiDPI Support選項, 把它啟用, 如下:


啟用後需重新啟動Chrome, 就可以看到字體又大又清楚。

















如果還嫌字體不夠大, 可以到控制台->調整螢幕解析度->改變文字和其他項目的大小:



















在 "變更所有項目的大小" 設定文字和項目放大的百分比, 套用後重新登入即可生效。

星期一, 3月 31, 2014

ATOM 3D印表機負座標顯示修正

ATOM一開始就被我發現LCD顯示有點問題, 當座標值是負數時顯示結果是錯的。

例如, X = -4會顯示是這樣:













雖然不影響功能, 但龜毛如我, 這種事是很難令人忍受的。

忍不住動手改了一下firmware, 找了一下在 ultralcd.cpp 裡, 將 itostr3 這個函數改成這樣:

char *itostr3(const int &xx)
{
  int xx1 = abs(xx);
  if (xx1 >= 100)
    conv[0]=(xx1/100)%10+'0';
  else
    conv[0]=' ';
  if (xx1 >= 10)
    conv[1]=(xx1/10)%10+'0';
  else
    conv[1]=' ';
  conv[2]=(xx1)%10+'0';
  conv[3]=0;
  if (xx < 0) conv[0] = '-';
  return conv;
}

如此一來, 就可以正確顯示負座標了。
























============================================================
4/1補充(不是愚人節把戲, 請放心!)

空白的地方改'0', 填滿3位數比較好看. 請自行選擇喜歡的顯示方式服用:

char *itostr3(const int &xx)
{
  int xx1 = abs(xx);
  if (xx1 >= 100)
    conv[0]=(xx1/100)%10+'0';
  else
    conv[0]='0';
  if (xx1 >= 10)
    conv[1]=(xx1/10)%10+'0';
  else
    conv[1]='0';
  conv[2]=(xx1)%10+'0';
  conv[3]=0;
  if (xx < 0) conv[0] = '-';
  return conv;
}


星期二, 3月 18, 2014

Atom加裝風扇

黑武士...
買不到12V 2.5x2.5cm的, 只好改用12V 3x3cm的。

從D9拉出接到風扇


























在KISSlicer中設定風扇動作。


Loops: 表示在外印外圈時風扇的速度
Inside: 印內部時風扇速度, 0表示關閉風扇
Cool: 冷却時風扇速度
Fan Z: 風扇開始動作的高度
Min Layer: 若某一層的列印時間少於這個秒數則減緩列印速度


實際運作狀況