星期四, 6月 19, 2014

包不出一個支援多國語系的 ActiveX cab

ActiveX 本身的組件預設會產生在 bin\Debug 目錄下,而各語系資源會在 bin\Debug\[lang] 目錄下,以正體中文為例,會在 bin\Debug\zh-TW 目錄下。只要包裝時 cabarc.exe 下了 -r -p 這兩個參數,雖然多國語系的資源檔都確實進了子目錄,但使用端始終無法將 ActiveX 安裝成功。

但如果在使用端手動將多國語系的子目錄與資源檔補上,多國語系的功能看來是正常的,所以問題應該在 IE 解完 cab 之後的動作,根本就不能處理有子目錄的狀況。

後來的土解法:將 bin\Debug 目錄下的所有子目錄與檔案先包成一個 cab,再把這個 cab、能解這個 cab 的 cabarc.exe 以及其他的檔案再包一個 cab,並寫好用戶端安裝的步驟,第一就是把裏面的 cab 還原到安裝目錄去。

星期一, 6月 16, 2014

在新環境執行舊版 ActiveX 元件

過去有個用 .NET Framework 2 編譯的 ActiveX 元件,一直都沒什麼問題。但現在愈來愈多用戶端是 Windows 8 或 Windows 8.1,內建就是 .NET Framework 4 以上,對於一般的元件來說,可以利用 App.config 或是 Web.config 指定 RuntimeVersion 解決,但 ActiveX 沒機會。要求使用者加裝 .NET Framework 2 是可行,只不過要費許多口舌。所以只好在 ActiveX 下載安裝的過程最後改機碼,將以下
  • ...\Software\Classes\CLSID\{...}\InprocServer32\1.2.3.4
    • RuntimeVersion=v2.0.50727
改成
  • ...\Software\Classes\CLSID\{...}\InprocServer32\1.2.3.4
    • RuntimeVersion=v4.0.30319
當然,也必須有配套判斷,在使用者環境只有 .NET Framework 4 的條件下,才做上述的修改;在 .NET Framework 2 以及 .NET Framework 4 兩者並存的條件下,就沒有必要改。

星期六, 6月 14, 2014

執行 Powershell 指令稿

在 Windows 8.1 預設只能執行單行指令,包了多行的指令稿檔案是受限制的,詳請在。但我們可以下一行指令來開放:
  • Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
記得要用管理權限哦!

自製大頭照

為了護照過期,要做二吋的證件照。請公主用數位相機幫忙,留下幾點備忘:
  • 在白牆白燈的房間照
  • 儘量增加不同方向的光源,以減少陰影
  • 相機正對人頭,距離在一到二公尺之間
  • 用修圖軟體將人頭周圍的背景塗白
  • 用 Photocap 套 4*6 一式八張的樣版
  • 到便利商店洗「立可得」一張六元

星期四, 6月 05, 2014

使用 MSDeploy 安裝憑證

依據這一篇文章,我們知道微軟對於憑證存放區至少分了八塊,再看到這一篇文章,另人失望地寫明「僅支援 My 存放區」。對此高度存疑的我,為了要信任一個懶惰又小氣的安全網站,不死心地嘗試,結果還是突破了 My 的限制,成功地將憑證放到「受信任的人」存放區,我想要訣可能是權限要夠,而且必須同時指定憑證的目標存放區與雜湊值,還有「盡信書(官網)不如無書(官網)」吧?