2016/08/30

找不到這些檔案 MSVCP140D.dll, ucrtbased.dll, VCRUNTIME140D.dll ...解法為 用release mode重新編譯, 拿去DUT跑就沒這些問題!

在Visual studio 2015 上面編譯 exe 檔
拿去DUT跑這個exe卻發生 errors : 找不到這些檔案 MSVCP140D.dll, ucrtbased.dll, VCRUNTIME140D.dll …等等

應該是因為我是在 debug mode 作編譯
所以當我執行該Exe檔的時候,他會去使用到一些 debug DLLs 檔案
然後用release mode重新編譯, 拿去DUT跑就沒這些問題!

網路上有個人回應是:

开发机上报找不到这个DLL说明你的Visual Studio安装出错。测试机上报找不到这个DLL说明你的安装脚本写得有问题。最终用户机上报找不到这个DLL说明你没看用户协议(微软禁止你向第三方发布这个测试专用的DLL)。这个DLL只有程序员才用得到,而且程序员基本都知道DLL Hell的危害不会去胡乱去网上下DLL,所以没下载这个需求,网上搜不到资源是正常的。作者:蒋晟链接:https://www.zhihu.com/question/39360390/answer/80965242来源:知乎 

2016/08/25

wordpress文章內實作Google Map嵌入代碼

1. 先作出一份可以重覆使用的代碼, 姑且就叫作 googlemap.php

可以先看這份Google Map 快速指南, 看完至少根據你的需求產生對應的嵌入碼smple

如下例 googlemap.php

<?php  $target = get_post_meta($post->ID, 'MapPoint', $single = true); //會去讀取自定欄位MapPoint的值assign給$target ?><div class="googlemap"> <?php  if ( !empty($target) ) { echo '<iframe width="750" height="500" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/search?q='. $target .'&key=填入你申請的API金鑰" allowfullscreen></iframe>';  } ?> </div>

再到single.php裡面
把 <? include(googlemap.php) ?> 放到 the_content()之後…

可以在wordpress單篇文章內設定:

2. 必須要申請Google Map API 的金鑰(key)

另外一種做法: function.php

這個作法指需要修改function.php即可,
最好能先搞懂什麼是Wordpress的HOOK, 以及the_content()的定義, 還有一些前人的解法

function add_googlemap($content) {  global $post; $target = get_post_meta($post->ID, 'MapPoint', $single = true); $map_str = '<div class="googlemap">'; if ( !empty($target) ) { $map_str .= '<iframe width="750" height="500" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/search?q='. $target .'&key=填入你申請的API金鑰" allowfullscreen></iframe>';  } $map_str .= '</div>';  $content = $content ." ". $map_str ; $map_str = " "; return $content;}add_filter('the_content', 'add_googlemap');

2016/08/18

儲存裝置的資料傳輸技術: IDE,SATA,SCSI

◎ IDE(Integrated Device Electronics)
PATA-Parallel Advanced Technology Attachment (IDE)
一種電腦系統介面,主要用於硬碟和CD-ROM, 它的本意是指把控制器與盤體集成在一起的硬碟驅動器,我們常說的IDE介面,也叫ATA(Advanced Technology Attachment)介面,現在PC機使用的硬碟大多數都是IDE相容的,只需用一根電纜將它們與主板或介面卡連起來就可以了。
把盤體與控制器集成在一起的做法減少了硬碟介面的電纜數目與長度,資料傳輸的可靠性得到了增強,硬碟製造起來變得更容易,因為廠商不需要再擔心自己的硬碟 是否與其他廠商生產的控制器相容,對用戶而言,硬碟安裝起來也更為方便。

ATA 介面發展到今,細分可以分成ATA-1(IDE)、ATA-2(EIDE Enhanced IDE/Fast ATA)、ATA-3(FastATA-2)、Ultra ATA、Ultra ATA/33、Ultra ATA/66、Ultra ATA/100及Serial ATA。
優點:
價格低廉
相容性非常好

缺點:
速度慢(尤其是早期的ATA硬碟)
只能內置使用
對介面電纜的長度有很嚴格的限制

◎ SATA
SATA-Serial Advanced Technology Attachment
是Serial ATA的縮寫,也就是串列ATA。它是一種完全不同於並行ATA(Parallel ATA)的新型硬碟介面類型,因採用串列方式傳輸數據而得名。
SATA匯流排使用了嵌入式時鐘信號,具備了比以往更強的糾錯能力;而且其最大的區別在於能對傳輸指令(不僅是數據)進行檢查,如果發現錯誤會自動矯正,在相當大的程度上提高了數據傳輸的可靠性。串列介面還具有支持熱插拔、結構簡單的優點。
SATA有SATA-1、SATA-2及將推出的SATA-3規格。

◎ SCSI
(英文全稱:Small Computer System Interface; 英文簡寫:SCSI),
是一種用於電腦及其週邊設備之間(硬碟、軟碟機、光碟機、印表機、掃描儀等) 系統級介面的獨立處理器標準。
SCSI標準定義了命令、通訊協定以及實體的電器特性,換成OSI的說法就是佔據了實體層、連結層、通訊層、應用層,最大部份的應用是在儲存設備上像是硬碟、磁帶機,但,其實他可以連接的設備包過有掃描器、光學裝置(像CD、DVD)、印表機……等等,
SCSI命令中有條列出 支援的裝置SCSI週邊裝置,理論上他不可能連接所有的裝置,所以有1Fh – unknown or no device type這個參數存在。

2016/08/08

wordpress文章分類下拉式, 標題重複問題

WordPress側欄工具有一項是, 下拉式文章分類, 但這個小工具有個滿白目的缺點, 就是標題會重覆!

而且這個又不能透過theme的部分去修改, 只好去找源頭!

經檢查,是部分主題下,主題的代碼已經輸出了標題,而wordpress的代碼又再次輸出了一次。

於是我們需要刪除wordpress重複輸出的那部分代碼,

檔案位置是 wp-includes/widgets/class-wp-widget-categories.php

標住起來, 如下:

然後保存即可。

2016/08/04

php mail header設定 - 解決虛擬主機會有漏信的問題

之前幫朋友寫購物網站, 所以需要寄信給客戶以確認帳單, 但卻發現目前的虛擬主機會有漏信的問題, 這些日子以來很多顧客反應沒有收到確認信件, 所以要Debug是程式錯誤還是主機錯誤!

原本語法:

$store_main = "xxxxxxx@yahoo.com.tw"; /* 商家客服信箱 */$headers = "MIME-Version: 1.0rn";$headers .= "Content-type: text/html; charset=utf-8rn";$headers .= "From: ".$store_main."rn";  mail ($email, $subject, $body, $headers);

過一陣子, 我查出基本方向..
只要我有加$headers 就會寄件失敗

mail($to, $subject, $message, $headers); 

拿掉 $headers 就會寄件成功, 但會出現HTML亂碼與一些錯誤資訊

mail($to, $subject, $message, $headers); 

主機商回信:

您好:請將 $headers.= "From: wii遊戲片專賣店rn";裡面的 Email 更改為位於我們主機的 Email例如 service@domainname.com這樣就可以正常發信不會漏信因為您之前使用 xxxxxx@yahoo.com.tw 作為寄信者但是信件卻不是真的從 Yahoo 主機發送出去所以會被 Gmail、Yahoo、Hotmail 等判斷為廣告信而拒收如果還有任何問題隨時歡迎您再來信詢問謝謝

後來改成主機domainname的email
果然就變正常… 感覺是個滿初級的錯誤…..

2016/07/26

使用PHP語法修改Wordpress裡的 404.php 檔, 來發信告知管理者

如何使用PHP語法取得目前網址:

  • 以”http://s3131212.com/test1/test2.php?t=test3″為例
    • 取得網站主網域: $_SERVER[‘HTTP_HOST’]
      • 得到結果:s3131212.com
    • 取得主網域以後的內容: $_SERVER[‘REQUEST_URI’]
      • 得到結果:/test1/test2.php?t=test3
    • 取得主網域以後,但不含參數 $_SERVER[‘PHP_SELF’]
      • 得到結果:/test1/test2.php
    • 取得參數 $_SERVER[‘QUERY_STRING’]
      • 得到結果:t=test3
    • 假設要取得網站全部網址,
      • 可用以下程式碼: $URL = ‘http://’.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];

直接修改Wordpress裡的 404.php 檔, 來發信告知管理者:

	$blog  = get_bloginfo('name');$email = get_bloginfo('admin_email');$URL = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];$message =  '抱歉! 目前找不到該網頁: '.$URL.' 系統已發信通知網站管理者。';mail( $email, $blog.": 404錯誤通知 !", $message, "From: $email"); 

2016/07/19

Windows 自動化安裝套件 (Windows AIK) - 教學與介紹

Windows AIK 概觀

Windows(R) 自動化安裝套件 (AIK) 是您用來自動化部署 Windows 作業系統之工具和文件的集合。AIK 是您可用來部署 Windows 之數種資源的其中一種。
AIK 適用於高度自訂的環境。AIK 中的工具可讓您設定許多部署選項,同時還提供高度的彈性。每家公司的公司部署環境都不一樣。視您的商務需求和資源而定,您可以選擇使用 AIK 中提供的所有或部分資源。
其他 Windows 部署工具與資源包括下列各項:

  • Microsoft Deployment Toolkit。這些工具提供完整自動化部署 Windows 作業系統。‎‎‏Microsoft Deployment Toolkit 可以減少部署時間、標準化 Windows 映像、限制服務中斷、降低部署後支援部門成本以及改進安全性與持續進行的設定管理。如需詳細資訊,請參閱桌面部署 TechCenter (可能為英文網頁)。
  • 應用程式相容性工具組。 這些工具可讓您在環境中部署新版 Windows 或 Internet Explorer(R) 之前先評估並減少應用程式相容性問題。如需相關資訊,請參閱 Microsoft 應用程式相容性工具組 5.0 (可能為英文網頁)
  • Microsoft Assessment and Planning Toolkit Solution Accelerator。 此工具可讓您評估您目前的 IT 基礎結構是否可進行各種技術移轉專案。它包含之前附隨 Windows Vista(R) Hardware Assessment Solution Accelerator 提供的功能。如需相關資訊,請參閱 Microsoft Assessment and Planning Toolkit (可能為英文網頁)

AIK 工具
根據預設值,AIK 會安裝在 C:\Program Files\Windows AIK 目錄。這個目錄含有此版本所包含的所有工具和文件。大部分 Windows 部署案例使用的核心工具包括:

  • Windows 系統映像管理員 (Windows SIM)
    此工具用來開啟 Windows 映像、建立回應檔案以及管理發佈共用與組態集。
  • ImageX
    此工具用來擷取、建立、修改以及套用 Windows 映像。
  • 部署映像服務與管理 (DISM)
    此工具用來將更新、驅動程式以及語言套件套用至 Windows 映像。DISM 可用於 Windows 7 和 Windows Server 2008 R2 的所有安裝。
  • Windows 預先安裝環境 (Windows PE)
    這是一種用來部署 Windows 的最基本作業系統環境。AIK 包含可用來建置和設定 Windows PE 環境的數種工具。
  • Windows 安裝程式
    此工具用來安裝 Windows。此工具包含於 Windows 產品 DVD 中,而不是 AIK 安裝的一部分。
  • Sysprep
    此工具用來準備要製作映像或交付給客戶的 Windows 安裝。Sysprep 工具提供於所有 Windows 安裝的 %WINDIR%\system32\sysprep 目錄中。
  • 使用者狀態移轉工具 (USMT)
    此工具用來將舊版 Windows 作業系統上的使用者資料移轉至 Windows 7。USMT 會安裝為 AIK 的一部分,安裝於 %PROGRAMFILES%\Windows AIK\Tools\USMT 目錄。如需 USMT 的相關資訊,請參閱《使用者狀態移轉工具使用者手冊》(Usmt.chm)。

下載

2016/06/28

Wordpress可以用外掛建立Google APK, Apple App

由於現在使用Application實在是銳不可擋, 看網頁的人越來越少! 必須要快點建立APP囉

Google Admob 管理APP收益系統

Google Admob
就如同是網頁廣告營收系統的Adsense,而在APP的廣告收益是透過Admob管理收益

Google Play APK 的世界

Google Play Developer Console:
1. 網址: https://play.google.com/apps/publish/
(開發者網站則是 https://developer.android.com/index.html )

2. App應用程式: https://play.google.com/store/apps/details?id=com.google.android.apps.playconsole

如果是第一次要發佈應用程式,必須先申請Google開發者帳號。申請條件:

  • 必須使用Google帳號。
  • 申請開發者帳號的費用是25美金。
  • 費用只接受信用和Google電子錢包支付。
  • 帳號永久有效

Apple Store App 的世界

待補…

WordPress外掛- 把網站內容轉成APP

1. WordPress外掛 – Androapp
此款外掛可以協助Wordpress的部落客, 建立基本的APK
Androapp – Native Android mobile app for wordpress site
其實我有是過其他外掛, 但都出現一些奇怪的問題, 直到找到這款Androapp 外掛, 當然可能有未知問題還沒被我發現而已! 像是以後要更客製化是否能過作到,會不會有怪怪bug …等等
但要收費, 而且不支援產生ios App:

Pricing
Completely free for the first 1 month, no credit card needed.

Annual Renewal fee:

Normal WordPress site: $50/year
Woocommerce enabled site: $100/year

** Notice: Price will be increased by 20% from 1st July 2016. i.e $60 for normal site and $120 for ecommerce site** In case you are not willing or not able to pay $50, We will reserve all ad slot for us, you will not be able to show ads on the app.

2. WordPress外掛 – Worona
這款外掛有免費版也有付費版, 付費版150歐元起跳
其實我也還在試驗利外一個 Worona外掛, 免費且支援Google APK 與 IOS APP, 但目前卡關中, 而且他的工程師很nice還可以問問題有回信給我建議:

我Q: So nice to have your Worona plugin. I got a issue when building myself APK. It looks like I have a similiar problem with this link. Unfortunatly, I can’t fix it even if install json-rest-api plugin. https://wordpress.org/support/topic/wp-json-error

回應:
You don’t need to install any JSON REST API plugin, the Worona Plugin already injects the REST API.
In addition, to make the Chinese characters work please install https://es.wordpress.org/plugins/so-pinyin-slugs/.
Please let us know if it works or if you have any other problem.

直接自己來開發APP

基本觀念:
1.用AppsGeyser把網站轉換成Android APP / The Usage of AppsGeyser: From Website to Android APP

2016/06/23

什麼是.wim檔案? Windows Imaging File Format (WIM)

本主題介紹 Microsoft Windows 映像 (WIM) 檔案格式。WIM 是 Windows Vista 中所推出,以檔案為基礎的磁碟映像格式。WIM 檔案屬於壓縮的封裝,包含許多相關的檔案。WIM 檔案的格式經過最佳化,使用 LZX 可得到最大壓縮、使用 XPRESS 可得到快速壓縮,或者不壓縮。

WIM 檔案結構

WIM 檔案結構共包含六種資源:標題、檔案資源、中繼資料資源、查閱資料表、XML 資料及完整性資料表。以下插圖顯示包含兩個映像之 WIM 檔案的一般配置。

WIM File Structure

WIM 檔案配置

  • WIM 標題:定義 .wim 檔案的內容,包括關鍵資源 (中繼資料資源、查閱資料表及 XML 資料) 的記憶體位置,以及各種 .wim 檔案屬性 (版本、大小及壓縮類型)。
  • 檔案資源:包含擷取之資料的一系列封裝,例如來源檔案。
  • 中繼資料資源:包含您所擷取之檔案的相關資訊,包括目錄結構與檔案屬性。.wim 檔案中每一個映像都有一個中繼資料資源。
  • 查閱資料表:包含 .wim 檔案中之資源檔案的記憶體位置。
  • XML 資料:包含映像的其他資料。
  • 完整性資料表:包含在套用操作中用於驗證映像之完整性的安全性雜湊資訊。

3

imagex 的使用教學介紹 - 擷取、修改及套用映像

(參考微軟教學網頁), 然整理如下:

什麼是 ImageX?

ImageX 是一套命令列工具,可讓原始設備製造商 (OEM) 與企業擷取、修改及套用以檔案為基礎的磁碟映像,以利快速部署。 ImageX 可與 Windows 映像檔案 (.wim) 搭配使用,將檔案複製到網路,也可以與使用 .wim 映像的其他技術搭配使用,例如 Windows 安裝程式、Windows 部署服務 (Windows DS) 以及 System Management Server (SMS) 作業系統功能部署套件。

ImageX 如何運作

ImageX 是從一組 API (稱為 Windows 的映像 API) 組建的映像工具。ImageX 的主要目的是擷取、修改及套用映像,以部署於製造商或公司的 IT 環境中。ImageX 支援新的 Microsoft Windows 映像 (.wim) 格式。

ImageX 結構: ImageX 會依賴數個元件,包括 ImageX 執行檔 (ImageX.exe)、WIM 檔案系統篩選器 (Wimfltr.sys 及 Wimfltr.inf)、WIM API 集,以及 .wim 檔案格式。下圖顯示這些元件之間的互動。

ImageX 命令列選項

ImageX 是 Windows Vista 的命令列工具,可用來建立及管理 Windows 映像 (.wim) 檔案。.wim 檔案包含一或多個磁碟區映像、包含已安裝之 Windows 作業系統映像的磁碟區。

若要修改磁碟區映像,您必須在執行 Windows XP Service Pack 2 (SP2)、Windows Server 2003 Service Pack 1 (SP1) 或 Windows Vista 的電腦上,安裝 Windows 映像檔案系統篩選器 (WIM FS 篩選器) 驅動程式。安裝 WIM FS 篩選器驅動程式可讓您將 .wim 檔案當成目錄一樣掛接,而且不用解壓縮或重新建立映像,就能在檔案管理工具 (例如 Windows 檔案總管) 中瀏覽、複製、貼上及編輯磁碟區映像。

mageX 命令列選項的用法如下:
imagex [flags] {/append | /apply | /capture | /delete | /dir | /export | /info | /split | /mount | /mountrw | /unmount} [parameters]

下列清單會顯示每個 imagex 作業類型所用的有效語法:

  • imagex /append image_path image_file {“description”} {/boot | /check | /configconfiguration_file.ini | /scroll | /verify}
    將磁碟區映像附加到現有的 Windows 映像 (.wim) 檔案。建立檔案的單一例項、將其與 .wim 檔案中已存在的資源相比較,讓您不致於重複擷取同一個檔案。

    • ex: imagex /append d:d:\imaging\data.wim “Drive D” /verify
  • imagex /apply image_file image_number image_name image_path {/check | /ref | /scroll | /verify}
    將磁碟區映像套用到指定的磁碟機。

    • ex: imagex /apply d:\imaging\data.wim 1 d:\New_Directory /verify
  • imagex /capture image_path image_file “name” {“description”} {/boot | /check | /compress [type] | /config | /flags “EditionID” | /norpfix | /scroll | /verify}
    將來自磁碟機的磁碟區映像擷取到新的 .wim 檔案。擷取的目錄會包含所有的子資料夾及資料。您無法擷取空的目錄。目錄必須至少包含一個檔案。

    • ex: imagex /capture d:d:\imaging\data.wim “Drive D” /verify
    • ex: imagex /compress fast /flags “Ultimate” /check /scroll /capture c:d:\install.wim “Windows Vista Ultimate”
  • imagex /delete image_file image_number image_name {/check}
    從含有多個磁碟區映像的 .wim 檔案中,刪除指定的磁碟區映像。此選項只會刪除中繼資料項目及 XML 項目。它不會刪除串流資料,也不會最佳化 .wim 檔案。

    • ex: imagex /delete d:\imaging\data.wim 1
  • imagex /dir image_file image_number image_name
    顯示指定之磁碟區映像內檔案及資料夾的清單。

    • ex: imagex /dir d:\imaging\data.wim 1
  • imagex /export src_file src_number src_name dest_file dest_name {/boot | /check | /compress [type] | /ref [splitwim.swm]}
    將指定之 .wim 檔案的複本匯出至其他的 wim. 檔案。來源及目的檔案必須使用同一個壓縮類型。您也可以匯出至新的映像檔案,將映像最佳化。當您修改映像時,ImageX 會儲存其他資源,使得映像整體大小增加。匯出映像會移除不必要的資源檔案。

    • ex: imagex /export d:\imaging\data.wim d:\imaging\sample.wim 1
  • imagex /info img_file[img_number | img_name] [new_name] [new_desc] {/boot | /check}
    傳回針對指定 .wim 檔案所儲存的 XML 描述,包括 (但不限於) 檔案大小總計、映像索引編號、目錄計數、檔案計數及描述。
    ex: imagex /info d:\imaging\data.wim
  • imagex /mount image_file image_number image_name image_path {/check}
    從 Microsoft Windows XP Service Pack 2 (SP2)、Microsoft Windows Server 2003 Service Pack 1 (SP1) 或 Windows Vista 掛接具有唯讀權限的 .wim 檔案至指定的目錄。檔案一經掛接之後,您便可檢視 (但不能修改) 目錄中包含的所有資訊。

    • ex: imagex /mount d:\imaging\data.wim 2 c:\mounted_images
  • imagex /mountrw image_file image_number image_name image_path {/check}
    從 Microsoft Windows XP Service Pack 2 (SP2)、Microsoft Windows Server 2003 Service Pack 1 (SP1) 或 Windows Vista 掛接具有讀取/寫入權限的 .wim 檔案至指定的目錄。檔案一經掛接之後,您便可檢視及修改目錄中包含的所有資訊。

    • ex: imagex /mountrw d:\imaging\data.wim 2 c:\mounted_images
  • imagex /split image_file dest_file size {/check}
    將現有的 .wim 檔案分割為多個唯讀分割 .wim 檔案 (.swm)。

    • ex: imagex /split d:\imaging\data.wim 600
  • imagex /unmount image_path {/commit}
    取消掛接指定目錄中的已掛接映像。

    • ex: imagex /unmount /commit c:\mounted_images

 

/verify 及 /check 支援 .wim 檔案的檔案驗證及資料完整性

在套用作業期間,/verify 及 /check 選項會影響效能。建議您使用 /verify 及 /check 兩個選項以獲得最佳的映像驗證及資料完整性。

  • /verify 選項: 會驗證快取寫入並檢查錯誤及檔案重複。/verify 選項不支援磁碟清除、寫出或略過系統快取。在擷取作業期間,/verify 選項會讀回擷取的檔案,並依每個位元組與原始所擷取檔案進行比較。在套用作業期間,/verify 選項會重新雜湊套用的檔案,並與在擷取作業期間所產生的雜湊進行比較。
  • /check 選項: 是專為偵測 .wim 檔案的損毀而設計。如果未在擷取作業期間設定 /check 選項,則在套用作業期間會忽略旗標。在擷取作業期間,/check 選項會對 .wim 檔案以每 10 MB 資料區塊的方式產生及儲存一系列的雜湊。在套用作業期間,/check 選項會對在擷取作業期間所儲存的雜湊進行雜湊並驗證這些 10 MB 的區塊。

ImageX 錯誤碼

  • 0 成功
  • 1 命令列選項無效
  • 2 WIMGAPI 失敗
  • 3 設定指令碼無效
  • 4 拒絕存取,需要系統管理員權限

什麼是.wim檔 ?

http://eeepage.info/windows-imaging-file-format-wim/

2016/06/22

如何在 UEFI-aware platform 上讓 USB 直接開機進 shell

(引用自: prhsie-bios)

在 UEFI platform 上(若不考慮 CSM 時), BDS phase 在開機時會主動搜尋 media 上的 /efi/boot/bootx64.efi 或 bootia32.efi 做為開機的起點. 而這檔案就分別是 X64 或 IA32 版的 shell.efi .

有 EDK II/UDK2010 的人, 可以把 EdkShellBinPkg 裡的 shell 複製到 UFD (請確定 UFD 是FAT 格式)裡:

    FullShell\Ia32\Shell_Full.efi to \efi\boot\bootia32.efi    FullShell\X64\Shell_Full.efi to \efi\boot\bootx64.efi    or    MinimumShell\Ia32\Shell.efi to \efi\boot\bootia32.efi    MinimumShell\X64\Shell.efi to \efi\boot\bootx64.efi

PS1: 可以只複製 bootx64.efi 就夠了
PS2: 原始碼與binary檔: EdkShellBinPkg source 1, EdkShellBinPkg source 2

順帶一提,手上有 AMI Aptio code 的人可以找一下 addon 裡面, 依樣劃葫蘆:

    addon\shell.efi to \efi\boot\bootx64.efi

如此一來,就可以在 Aptio Setup Utility 的 Boot 裡選用 “UEFI:” 開頭的 USB device 開機了. (當然了, 直接選用 Save & Exit 裡的 Boot Override 也可以). 這樣當你在沒包 shell UEFI-aware platform 上, 就可以不必用 Launch EFI Shell from filesystem device 的方法來手動 boot to shell 了. (這方法得把 shell.efi 複製到根目錄,並改為 shellx64.efi)

延伸閱讀: MSI也提供透過進EFI介面更新BIOS的文件說明

2014/06/13- 如何製作 UEFI 開機隨身碟並更新 BIOS?
https://tw.msi.com/files/pdf/Win8_BIOS_Update_Step_by_Step_Guide_ch.pdf

2015/01/21 – 使用 EFI Shell 更新 BIOS
https://tw.msi.com/files/pdf/win8_UEFI_BIOS_Update_auto_ch.pdf

2016/06/21

Wordpress外掛 - 好用的 readmore(閱讀更多) 客製化設定

原本wordpress會透過 the_excerpt() 去自動幫忙取開頭的一小段文字當作引言, 但我覺得太短了, 想要讓引言長一點! 找到這款外掛, 可以直接後台設定細節
Easy Custom Auto Excerpt
Auto Excerpt for your post on home, search and archive. Customize Read More button and thumbnail image. Easy to configure and have a lot of options.

2016/06/20

DevCon 或 DevCon64 可以啟用、 停用、 重新啟動、 更新、 移除,和查詢個別 裝置群組。

DevCon 公用程式是一個命令列公用程式,做為 [裝置管理員的替代。 使用 DevCon,您可以啟用、 停用、 重新啟動、 更新、 移除,和查詢個別裝置群組。

Windows Device Console (Devcon.exe)

https://msdn.microsoft.com/zh-tw/library/ff544707(v=vs.85).aspx
DevCon (Devcon.exe), the Device Console, is a command-line tool that displays detailed information about devices on computers running Windows. You can use DevCon to enable, disable, install, configure, and remove devices.
DevCon runs on Microsoft Windows 2000 and later versions of Windows.

What you can do with DevCon

Windows driver developers and testers can use DevCon to verify that a driver is installed and configured correctly, including the proper INF files, driver stack, driver files, and driver package. You can also use the DevCon commands (enable, disable, install, start, stop, and continue) in scripts to test the driver.

DevCon is a command-line tool that performs device management functions on local computers and remote computers.
(Note: To run DevCon commands on a remote computer, the Group Policy setting must allow the Plug and Play service to run on the remote computer. On computers that run Windows Vista and Windows 7, the Group Policy disables remote access to the service by default. On computers that run WDK 8.1 and WDK 8, the remote access is unavailable.)

Devcon features include:

  • Display driver and device info:  DevCon can display the following properties of drivers and devices on local computers, and remote computers (running Windows XP and earlier):
    • Hardware IDs, compatible IDs, and device instance IDs. These identifiers are described in detail in Device Identification Strings.
      Device setup classes
      The devices in a device setup class
      INF files and device driver files
      Details of driver packages
      Hardware resources
      Device status
      Expected driver stack
      Third-party driver packages in the driver store
  • Search for devices:  DevCon can search for installed and uninstalled devices on a local or remote computer by hardware ID, device instance ID, or device setup class.
  • Change device settings :  DevCon can change the status or configuration of Plug and Play (PnP) devices on the local computer in the following ways:
    • Enable a device
    • Disable a device
    • Update drivers (interactive and noninteractive)
    • Install a device (create a devnode and install software)
    • Remove a device from the device tree and delete its device stack
    • Rescan for Plug and Play devices
    • Add, delete, and reorder the hardware IDs of root-enumerated devices
    • Change the upper and lower filter drivers for a device setup class
    • Add and delete third-party driver packages from the driver store
  • Restart the device or computer : DevCon can restart a local device, reboot the local system on demand, or reboot the local system if required for another DevCon operation.

Windows Registry Editor 的修改範例 - 匯出/新增/更新/刪除

(出處:The Will Will Web) 操作登錄項目(Registry)是Windows RD經常做的事情,所以也會累積不少登錄檔(*.reg)隨時可供設定或移除,以下為範例!

匯出登錄機碼

無論如何,在測試修改機碼之前最好還是先備份一下,以一整個 “機碼” 為單位匯出(左側的每個資料夾都叫做機碼或稱子機碼),匯出成 *.reg 檔後,日後若改錯或出問題時,點兩下即可修復機碼。
登錄編輯程式 :: 匯出登錄項目

匯出後的格式像以下這樣,而我就是經常設定這種 *.reg 的檔案幫我更新、刪除一些系統常用機碼設定:

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes]"DefaultScope"="{05C72334-11F3-4e9f-8740-98128F52EFB9}""Version"=dword:00000001[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\{xxxx-xxxx}]"DisplayName"="Google""URL"=http://www.google.com/search?hl=zh-TW&esrch=BetaShortcuts&q={searchTerms}&lr=

新增或更新機碼值

我這陣子處理了許多開發環境的問題,其中幾天前講的 [ 安裝 Visual Studio .NET 2003 開發主機筆記 ] 就有提到如何解決 [HTTP – 401.1 未授權登入失敗] 的問題,這問題基本上只要新增一個機碼就能夠解決,而我就將這個「新增機碼」的動作儲存成 *.reg 檔,以後有其他電腦要設定環境時,直接 Double Click 就可以解決問題。

像這個問題需要在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 機碼中新增一筆 DisableLoopbackCheck 的 DWORD 值,假設檔名我取成 Set-DisableLoopbackCheck.reg 內容如下:

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]"DisableLoopbackCheck"=dword:00000001

備註:若「機碼」本身不存在,執行 *.reg 的時候會自動建立所有不認識的機碼,無須在特別另外建立。

刪除機碼值

如上一個範例,若要將 DisableLoopbackCheck 的 DWORD 值刪除,就可以用以下語法進行刪除:

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]"DisableLoopbackCheck"=-

這裡的重點就是設定值的地方要設定成一個減號 ( – ),這就代表著「刪除」的意思。

刪除登錄機碼

跟身除機碼值不同,刪除機碼將會連同機碼、機碼值、與所有子機碼都一併刪除,算是個殺傷力相當大的語法,必須小心使用。
若你想將 Visual Studio 2008 最近開啟的專案(Recent Projects)全部清空的話,可以利用以下 reg 檔直接刪除機碼並重建機碼。

Windows Registry Editor Version 5.00[-HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\ProjectMRUList][HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\ProjectMRUList]

如何執行 .reg檔讓修改得以實現

簡單的方法是直接按兩下執行, 而automation的工程師需要用Script的方式自動去跑, 方式如下:
以Set-DisableLoopbackCheck.reg為例

rem modify registry DisableLoopbackCheck value to dword:00000001regedit /s Set-DisableLoopbackCheck.regTIMEOUT /T 15

2016/06/16

比較 NTFS 與 FAT 檔案系統, 還有UEFI型與BIOS型(Legacy)磁碟分割設定

常聽到hybrid mode就是表示你的BIOS支援兩種開機模式, uefi boot 與 legacy bios boot。但是這兩種方法的disk partition不太一樣喔!

1. 比較 NTFS 與 FAT 檔案系統

http://windows.microsoft.com/zh-tw/windows-vista/comparing-ntfs-and-fat-file-systems
適用於 Windows Vista
檔案系統是電腦用來組織硬碟資料的基礎架構。如果您正在安裝新的硬碟,必須先 使用檔案系統進行分割和格式化,才能開始儲存資料或程式。在 Windows 中,有三個檔案系統選項可供選擇,分別為 NTFS、FAT32 以及較舊且較少使用的 FAT (又稱為 FAT16)。

NTFS:
NTFS 是此 Windows 版本慣用的檔案系統。它比早期的 FAT32 檔案系統擁有更多的優點,包括:

  • 自動從某些磁碟相關錯誤修復的功能,但 FAT32 沒有此功能。
  • 改善對大型硬碟的支援。
  • 更好的安全性,因為您可以使用權限和加密限制核准的使用者對特定檔案的存取。

 

FAT32:
FAT32 與較少使用的 FAT 都是用於舊版的 Windows 作業系統,包括 Windows 95、Windows 98 以及 Windows Millennium Edition。FAT32 沒有 NTFS 所提供的安全性,所以如果您的電腦上有 FAT32 磁碟分割或磁碟區,任何可存取您電腦的使用者都可以讀取其中的任何檔案。FAT32 也有大小的限制。您 無法在此 Windows 版本中建立大於 32GB 的 FAT32 磁碟分割,而且無法在 FAT32 磁碟分割上儲存大於 4GB 的檔案。

使用 FAT32 主要是因為您的電腦有時會執行 Windows 95、Windows 98 或 Windows Millennium Edition,其他時間則會執行此 Windows 版本,又稱為多重開機設定。如果是這種情況,您需要在 FAT32 或 FAT 磁碟分割上安裝舊版的作業系統,並確保它是主要磁碟分割 (裝載作業系統的磁碟分割)。使用這些舊版 Windows 時需要存取的任何其他磁碟分割也必須以 FAT32 格式化。這些舊版的 Windows 可存取網路上的 NTFS 磁碟分割或磁碟區,但不能存取您電腦上的 NTFS 磁碟分割或磁碟區。


2. 了解磁碟分割

https://technet.microsoft.com/zh-tw/library/dd799232(v=ws.10).aspx

2-1. 建議的 BIOS 型(Legacy)磁碟分割設定, 含系統復原

https://technet.microsoft.com/zh-tw/library/dd744364(v=ws.10).aspx
On legacy BIOS-based systems, the first sector of a partition is loaded into memory and execution is transferred to this code.
請考慮在系統磁碟分割或不同的修復磁碟分割中,安裝例如 Windows 修復環境 (Windows RE) 等復原工具,讓使用者能夠修復或重新安裝 Windows 而不需要刪除復原工具。安裝完成之後,您就可以設定 Windows 開機管理程式在 Windows 無法啟動時啟動復原工具。若要設定不同的修復磁碟分割,請設定下列磁碟分割類型,將修復磁碟分割識別成公用程式磁碟分割:

  • 在 Windows SIM 中:將 Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartition\TypeID 設成 0x27。
  • 在 DiskPart 工具建立和格式化磁碟分割後,使用命令 set id=27。

建議您將修復與公用程式磁碟分割放置在磁碟機的開頭。修復磁碟分割不會顯示在 Windows 檔案總管中。
下列範例中的設定包含主要修復磁碟分割、主要系統磁碟分割,以及主要 Windows 磁碟分割。

 

下表顯示在 Windows SIM 中用來設定此範例的設定 (在 Microsoft-Windows-Setup\DiskConfiguration\Disk 設定下)。

描述建立磁碟分割:順序建立磁碟分割:延伸建立磁碟分割:大小建立磁碟分割:類型修改磁碟分割:順序修改磁碟分割:#修改磁碟分割:使用中修改磁碟分割:格式修改磁碟分割:標籤修改磁碟分割:代號修改磁碟分割:TypeID
復原工具 (例如 Windows RE)1自訂 Windows 復原映像的大小主要11NTFS復原R0x27
系統磁碟分割2300主要22trueNTFS系統S
Windows3true主要33NTFSWindowsW

我的電腦實際狀況:
就跟上面的分隔式一樣的, 所以我的電腦應是使用Legacy方式開機, 因為若是EFI方式開機的話, 一定會有一塊FAT32的分隔磁區負責開機!
指令介面:

圖式化:

2-2. 建議的 UEFI 型磁碟分割設定

https://technet.microsoft.com/zh-tw/library/dd744301(v=ws.10).aspx
預設設定: 若為全新安裝,Windows 安裝程式預設會建立可延伸韌體介面系統磁碟分割 (EFI 系統磁碟分割或 ESP)、Microsoft(R) 保留的磁碟分割 (MSR) 以及主要 Windows 磁碟分割。

磁碟分割樣式GPT因為是新格式,不免會與舊系統或硬體共用,但是舊版系統跟硬碟分區軟體有可能會不認得GPT啊!因此GPT分區在建立時也會順便建立一個性質為「Protective MBR」的分割區,以免無法辨識GPT分割區的軟體誤將檔案內容破壞。因此通常在使用Windows 8光碟安裝UEFI系統時,除了產生安裝系統的主分割區以外,還會有以下3個分割區:

  • 修復分割區(約300MB):這個分割區是微軟獨有,用來在需要修復系統的情況,供給Windows RE(Windows Recovery Environment)存取之用。
  • ESP分割區(約100MB):非必須存在,放置UEFI啟動檔案,在開機時UEFI BIOS會讀取這塊區域,檔案格式為FAT32。
  • MSR分割區(約128MB):必須存在,就是前面所說的Protective MBR,當這顆碟安裝到不支援GPT的系統或硬碟管理軟體時,由於它們只會讀取到此分割區,就不會破壞GPT主分割區中的檔案了。

而開機應該就是透過這個(EFI 系統磁碟分割或 ESP)去boot起來, 再將控制權給主要Windows磁碟分割

這一塊EFI System磁區,其分割格式為FAT32, 是負責開機!

此表格顯示磁碟分割結構:

描述PartitionID大小磁碟分割類型格式磁碟機代號
EFI 系統磁碟分割 (ESP)1100 MBEFIFAT32
MSR 磁碟分割2128 MBMSR
Windows3磁碟的剩餘空間主要NTFSW