How to communicate between Metro UI and Desktop UI on Win8

It just a summarize to explain MSFT sample: Association launching sample.

  • Metro UI to call Desktop UI

    • File extension call:

      • Add default open on registry if you want create new one.

        • [HKEY_CLASSES_ROOT.XXX]
      • Using Windows.System.Launcher.launchFileAsync

    • Protocol call: (such as “http://”, “mailto://”)

      • Add default protocol on registry if you want create new one.

        • [HKEY_CLASSES_ROOT%PROTOCOL%] [HKEY_CLASSES_ROOT\%PROTOCOL%DefaultIcon] @=”C:\Program Files\XXX.exe,0”[HKEY_CLASSES_ROOT\%PROTOCOL%shell] @=”play”

[HKEY_CLASSES_ROOT\%PROTOCOL%shellopen] @=””

[HKEY_CLASSES_ROOT\%PROTOCOL%shellopencommand] @=”“C:\Program Files\XXX.exe” %1”

[HKEY_CLASSES_ROOT%PROTOCOL%shellplaycommand] @=”“C:\Program Files\XXX.exe” %1”

  * Using Windows.System.Launcher.launchUriAsync

P.S.: Since it is Async, please note you might need handle it well to make it work. :)

Metro UI to call Desktop UI

* 

File extension call

  * 

Add on “package.appxmanifest” “Declarations” to add “Protocol”.

  * 

Handle callback feedback and launch this app.

  * 

Double click file on desktop UI.

* 

Protocol call: (such as “http://”, “mailto://”)

  * 

Add on “package.appxmanifest” “Declarations” to add “File Type Associations”. (ex: “sampleApp://”)

  * 

Handle callback feedback and launch this app.

  * 

Type “sampleApp://” on file browser or IE.

  * 

You could using code “ShellExecute(NULL, _T(“open”), _T(“sampleApp://”), NULL, NULL, SW_SHOWNORMAL);”

How we use it?

To transfer control between Metro/Desktop.

To Write a launcher on Metro UI for your desktop application.

Express app on Metro UI and Pro app on desktop.

Refer:

Windows 8- 8250 note

  1. Windows 8 8250 is official Win8 beta which release on 02/29

  2. It not include VS2011 which vs2011 beta also release.

  3. Only VS2011 Express for Win8 has “Store” publish.

  4. ACK/HCK is not include with Win8 beta but include on VS2011 beta

學習日誌-LINQ心得

最近再研究如何寫出一個aggregator, 首先把LINQ跟JSON都看了一下。試著想找出一可以方便在各大相片網站找資料的共通語言,由於codeplex上面有Linq.Flickr這個open source 的library,也開始試著研究。

參考: 使用linq.flickr搜尋相片

Note:

  1. 由於改WLWPlurk,稱這次機會把手邊平台由VS2008改成VS2010。也裝了Visual Studio Achievements

  2. 為了開發快一點也把順手語言改成C#,不過後來發現Linq.Flickr是.Net3.5的~ 竟然也踩到了3.5 與 4.0 不共通的弊病。 所以也在Add reference 卡了一下。

  3. Flickr user name 不是URL上面的userID 而是user definded 的名字,為了這個我還以為是我安裝有問題~ 認真的trace 下Linq.Flickr去。

如何把寫好的 Windows Live Writer plugin包裝成安裝檔 (How to package your Windows Live writer plugin?)

(copy from my another site)

由於要修改去年寫給自己用的小工具 (WLWPlurk),看到其他在Codeplex上面的人都是用WIX(Windows Installer XML)來做包裝plugin的動作。

所以也去好好的搜尋一下有沒有相關可以用的東西。 由於我自己也不是專業在做Installer的人~ 裡面的一些設定也真的把我搞糊塗,才了解前因後果。還好找到了相關的文件WiX Script for installing Live Writer Plugins,雖然他上面的sample是針對 WIX 2.0,不過我也把它修改過後分享給大家。

希望有需要的人就拿去用吧。

  1. Install WIX 3.6 from http://wix.sourceforge.net/downloadv3.html

  2. Setup your path setting to your install path.

  3. Inser follow code (it should be XXX.WXS)
    (refer from http://wlwextensionlearning.blogspot.com/2012/02/windows-live-writer-plugin-how-to.html)

  4. You might need repace follow string as follows:
    1. {$Plugin Name$} : your plugin name

2. {$InstallGUID$}: A GUID for your installation program 
   
3. {$Manufacturer$}: Manufacturer name 
   
4. {$PluginGUID$}: A GUID for your plugin 
   
5. {$Description$}: A description for your plugin 
   
6. {$FILE_ID$}: ID for your binary which need install. (could be multiple file) 
   
7. {$FILE_NAME$}: Name for your binary which need install. (could be multiple file) 
   
8. {$FILE_Address$}: File address for your binary which need install. (could be multiple file) 
  1. Compiler your WIX source code
    1. candle XXX.wxs
2. light -ext WixUIExtension XXX.wixobj 

WLWPlurk 2.0 installer release

這幾天弄了好久~ 好不容易把Windows Installer XML (WIX) 3.6給搞懂。
等等寫另外一篇來記錄詳細資料,在這裡先請有需要安裝檔的去下載吧。

http://wlwplurk.codeplex.com/releases/52834/download/342411

有任何需要改進的麻煩留言告訴我!!

WLWPlurk 第二版發布

欠了好久~ 總算一口氣把它寫完:
請到這裡下載: http://wlwplurk.codeplex.com/

  1. Upgrade code with VS2010.
  2. Add login page for change account. Using registry to save your login information.
    WLWPlurk_1.jpg
  3. Add post content page to let you modify your plurk before post it.
    WLWPlurk_2.jpg

How to use it:
Just download this binary, extract it and put on your Windows Live Writer plugin folder such as C:Program FilesWindows LiveWriterPlugins

This project implement base on two major component:

  1. Json.net (http://json.codeplex.com/)
  2. NPlurk (http://nplurk.codeplex.com/)
    You need plurk API key from http://www.plurk.com/API/ to use this source code.