電影心得-戀愛通告(Love In Disguise)

3246531_12808321856H92.jpg

> > **影片年份:**2010 **出 品 國:**China **出 品:**中國電影集團公司 **發 行 商:**山水國際娛樂 **語 言:**Mandarin **色 彩:**color **音 效:** > > > > **導演: **[王力宏](http://app.atmovies.com.tw/star/star.cfm?action=stardata&starid=sAW3004023) **編劇: **[王力宏](http://app.atmovies.com.tw/star/star.cfm?action=stardata&starid=sAW3004023) **演員: **[王力宏](http://app.atmovies.com.tw/star/star.cfm?action=stardata&starid=sAW3004023), [劉亦菲](http://app.atmovies.com.tw/star/star.cfm?action=stardata&starid=sHJ0072379), [陳漢典](http://app.atmovies.com.tw/star/star.cfm?action=stardata&starid=sKS0093165), [陳沖](http://app.atmovies.com.tw/star/star.cfm?action=stardata&starid=sJC2004369) > > > > **劇情簡介:** > > > > 偶像歌手王力宏編自導自演之作,以切身際遇現身說法,演出一位內心渴望返璞歸真的巨星。 家喻戶曉的大明星杜明漢(王力宏飾),正值人生的顛峰,通告滿檔,擅長音樂的他,能將事業和所長合而為一,雖說充實、順遂,卻也偶爾感到空虛,生活中好像少了些什麼。 > > > > ![3246531_1280832177UC8c.jpg](http://farm5.static.flickr.com/4112/5177950716_ff9c285b90.jpg) (那頭羊真是經典) > > > > 在圓滿成功的演唱會過後,一場交通意外,讓他看到了一霎而過的光亮,像似生命中另一種音樂境界的可能。帶給他這奇妙感觸的,正是彈古箏的音樂系學生宋曉青(劉亦菲飾),杜明漢對她產生極大的好奇心,於是半逼迫好友魏志柏(陳漢典飾)陪他扮裝以「釘州」牧羊人的身分,混入校園,一探宋曉青的「弦外之音」。 > > > > 資料來自: 開眼電影網 [http://www.atmovies.com.tw/movie/film.asp?action=now2&film_id=flhk49908131](http://www.atmovies.com.tw/movie/film.asp?action=now2&film_id=flhk49908131) > >

電影心得:

這部片子在上映前其實相當受到大家的關注,因為是由一代才子及女性心目中最佳男友代表的王力宏自編、自導、自演。 整個故事情的劇情圍繞在”知音”兩個字在敘述~ 王力宏將自己化身為劇中的男主角”杜明漢”。

12423699_11n.jpg
(看王力宏這樣多討喜?)

在其中杜明漢就像是現實中的王力宏一樣,是一個外貌與實力兼具的偶像歌手。在不停歇的演唱會、新歌發表會與唱片製作中忙碌著~ 直到有一天~ 因為一場車禍的意外才遇到了一個奇特的女子”宋曉青”(由劉亦菲飾演)。

38346123.jpg
(你看劉亦菲長的娃娃臉多奇特 XD)

宋曉青當時正在彈琴~ 而杜明漢(王力宏飾演)卻在她的琴聲之中感受到了蝴蝶飛舞~ 究竟是幻覺,還是現實? 讓他百思不得其解~~ 於是杜明漢決定要進去那個神秘女子的學校裏面去好好的研究。

B5307F9A3AFFCC1E3923078FEE147212.jpg
(據說是賣點的王力宏犀利哥打扮)

接下來的劇情就像一般青春校園喜劇一樣。不一樣的是男主角帥到爆、女主角漂亮到個不行。 我就不再對劇情加以敘述了,不過這一片看完我個人還蠻喜歡的說,主要原因如下:

__

__

我個人就是喜歡校園青春喜劇:

校園青春喜劇在國外是相當的盛行,不過裡面總是要有一些感人的劇情才能打動人心。當然一個犀利哥加上一個長相白皙又有一頭烏黑秀髮的娃娃臉美女就是加上了很多分。更何況女主角是演出小龍女就廣泛受到大家注意的劉亦菲。

3246531_1280832179qqwa.jpg
(你看~ 帥哥美女的畫面多麼和諧? 除了王力宏穿的衣服真的怪怪的)

__

__

音樂才是本劇的靈魂: (有雷喔)

當然身為音樂才子的王力宏,在這部電影裡面不免要秀出一些相當令人吃驚的才能。而這部裡面他會展現她完美的音樂感~ 有演奏一段二胡,而且還有上過節目上面去表演。一再表現出王力宏的音樂才華,在這部電影裡面,除了二胡的表演之外~ 還有許多好聽的歌曲~~~ 裡面有一段的情節是這樣的: 宋曉青發現了~ 阿德(也就是犀利哥打扮的化名)原來就是偶像明星杜明漢之後~ 拿著專輯要去給他簽名~並且要問他~ 到底他真正的叫甚麼名字的時候,宋曉青的眼淚就這樣掉了下來~ 並且狂奔而去。 這時候背景音樂響起了”唯一”的~~ 但是卻只有幾秒鐘~~~ 本來在眼眶裡面打轉的眼淚也這樣停了下來~~算是我覺得比較可惜的地方。
3246531_1280202491bd7s.jpg
(阿德:"我唱歌比杜明漢好聽喔~~~")

_有情人終成眷屬: _

雖然最後的結局是有情人終成眷屬,通常好看的感情戲應該要悲劇收場,不過我個人還是喜歡喜劇收場的電影~~~

3246531_1280202442cWvC.jpg
(這張有點像是拍貼,太多效果啦~~~~~)

Get tinyURL from your C# code

最近在Implement的時候,發現NPlurk能傳送的字串似乎比直接再plurk上面打的字串還少上許多(大概少上10~15個字元),看起來去使用TinyURL在code裡面也是勢在必行的。

參考網址: http://www.dotblogs.com.tw/jimmyyu/archive/2010/07/09/create-short-url-via-tinyurl-api.aspx
不過現在又發現Plurk無法顯示tinyURL的圖片,所以這些部分看起來得再做些調整才可以了。

WLWPlurk 第一版發布

摘要: 這是在Window Live Writer上面發布plurk的一個plugin.

雖然是最簡單的code,但是還是決定發布出來。有需要的人可以到codeplex的http://wlwplurk.codeplex.com/ 去下載第一版source code.

P.S.: 我發現我架設codeplex的時間都比我整理出第一版WLWPlurk還要費工夫。

WLW Plurk 相關資訊

幾經尋找~總算找到一個好用的plurk API使用軟體。不過在此之前還是有一些事情得先做。

  1. 申請Plurk API Key: 到此去申請一個你自己使用的plurk API key.

  2. NPlurk去下載相關source code吧~ 這個超好用的

測試過後,已經可以正常的把文章發不到Plurk去。算是好用吧(?)

測試結果: http://www.plurk.com/p/7qp2eq 是成功發文。

不過由於login架構尚未完成,現在整個plugin 也只有我自己可以使用。感覺有點弱。還有以下的工作項目需要完成:

不過有人需要我也是可以幫你客制一個先給你用

工作日誌2010/09/08: 關於PublishNotificationHook

自從寫完第一個Hello World之後,本來緊接著就打算繼續把PublishNotificationHook放入原來的第一個Hello World之中。

參考網路這篇文章(The New Live Writer SDK)裡面的source code,單純的把code加入之後,就像以下的狀態。

<div><!--<br></br><br></br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br></br>http://www.CodeHighlighter.com/<br></br><br></br>--><span style="color:#008080;"> 1</span> <span style="color:#0000ff;">using</span><span style="color:#000000;"> WindowsLive.Writer.Api;<br></br></span><span style="color:#008080;"> 2</span> <span style="color:#000000;"><br></br></span><span style="color:#008080;"> 3</span> <span style="color:#000000;"></span><span style="color:#0000ff;">namespace</span><span style="color:#000000;"> LiveWriterHelloWorld<br></br></span><span style="color:#008080;"> 4</span> <span style="color:#000000;">{<br></br></span><span style="color:#008080;"> 5</span> <span style="color:#000000;">    [WriterPluginAttribute<br></br></span><span style="color:#008080;"> 6</span> <span style="color:#000000;">      (</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;2f437bf1</span><span style="color:#000000;">-</span><span style="color:#000000;">fe57</span><span style="color:#000000;">-</span><span style="color:#000000;">41c8</span><span style="color:#000000;">-</span><span style="color:#000000;">931a</span><span style="color:#000000;">-</span><span style="color:#000000;">d20066ea174e</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;, </span><span style="color:#000000;">&</span><span style="color:#000000;">quot;Hello World</span><span style="color:#000000;">!</span><span style="color:#800080;">2</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;,<br></br></span><span style="color:#008080;"> 7</span> <span style="color:#000000;">        PublisherUrl </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">&</span><span style="color:#000000;">quot;http:</span><span style="color:#008000;">//</span><span style="color:#008000;">wlwextensionlearning.blogspot.com/&quot;,</span><span style="color:#008000;"><br></br></span><span style="color:#008080;"> 8</span> <span style="color:#008000;"></span><span style="color:#000000;">        Description </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">&</span><span style="color:#000000;">quot;Going to 2nd testing code</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;)]<br></br></span><span style="color:#008080;"> 9</span> <span style="color:#000000;">    [InsertableContentSourceAttribute(</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;Hello World</span><span style="color:#000000;">!&</span><span style="color:#000000;">quot;, SidebarText </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">&</span><span style="color:#000000;">quot;Hello World</span><span style="color:#000000;">!&</span><span style="color:#000000;">quot;)]<br></br></span><span style="color:#008080;">10</span> <span style="color:#000000;">    </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">class</span><span style="color:#000000;"> HelloWorldPlugin : ContentSource<br></br></span><span style="color:#008080;">11</span> <span style="color:#000000;">    {<br></br></span><span style="color:#008080;">12</span> <span style="color:#000000;">        </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">override</span><span style="color:#000000;"> DialogResult CreateContent(IWin32Window dialogOwner, </span><span style="color:#0000ff;">ref</span><span style="color:#000000;"> </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> content)<br></br></span><span style="color:#008080;">13</span> <span style="color:#000000;">        {<br></br></span><span style="color:#008080;">14</span> <span style="color:#000000;">            content </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">&</span><span style="color:#000000;">quot;</span><span style="color:#000000;">&</span><span style="color:#000000;">lt;b</span><span style="color:#000000;">&</span><span style="color:#000000;">gt;Hello World</span><span style="color:#000000;">!&</span><span style="color:#000000;">lt;</span><span style="color:#000000;">/</span><span style="color:#000000;">b</span><span style="color:#000000;">&</span><span style="color:#000000;">gt;</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;;<br></br></span><span style="color:#008080;">15</span> <span style="color:#000000;"><br></br></span><span style="color:#008080;">16</span> <span style="color:#000000;">            </span><span style="color:#0000ff;">return</span><span style="color:#000000;"> DialogResult.OK;<br></br></span><span style="color:#008080;">17</span> <span style="color:#000000;">        }<br></br></span><span style="color:#008080;">18</span> <span style="color:#000000;">    }<br></br></span><span style="color:#008080;">19</span> <span style="color:#000000;">    </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">class</span><span style="color:#000000;"> PublishNotificationExample : PublishNotificationHook<br></br></span><span style="color:#008080;">20</span> <span style="color:#000000;">    {<br></br></span><span style="color:#008080;">21</span> <span style="color:#000000;">        </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">override</span><span style="color:#000000;"> </span><span style="color:#0000ff;">bool</span><span style="color:#000000;"> OnPrePublish(IWin32Window dialogOwner,<br></br></span><span style="color:#008080;">22</span> <span style="color:#000000;">        IProperties properties, IPublishingContext publishingContext,<br></br></span><span style="color:#008080;">23</span> <span style="color:#000000;">        </span><span style="color:#0000ff;">bool</span><span style="color:#000000;"> publish)<br></br></span><span style="color:#008080;">24</span> <span style="color:#000000;">        {<br></br></span><span style="color:#008080;">25</span> <span style="color:#000000;">            </span><span style="color:#008000;">//</span><span style="color:#008000;"> Check the post contents to see if liveside appears, if it does,             </span><span style="color:#008000;">//</span><span style="color:#008000;"> return true (publish), <br></br></span><span style="color:#008080;">26</span> <span style="color:#008000;">            </span><span style="color:#008000;">//</span><span style="color:#008000;"> if it doesn't, return false (cancel publish)</span><span style="color:#008000;"><br></br></span><span style="color:#008080;">27</span> <span style="color:#008000;"></span><span style="color:#000000;">            </span><span style="color:#0000ff;">return</span><span style="color:#000000;"> publishingContext.PostInfo.Contents.ToLower().Contains(</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;liveside</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;)
;<br></br></span><span style="color:#008080;">28</span> <span style="color:#000000;">        }<br></br></span><span style="color:#008080;">29</span> <span style="color:#000000;">        </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">override</span><span style="color:#000000;"> </span><span style="color:#0000ff;">void</span><span style="color:#000000;"> OnPostPublish(IWin32Window dialogOwner,<br></br></span><span style="color:#008080;">30</span> <span style="color:#000000;">               IProperties properties, IPublishingContext publishingContext,<br></br></span><span style="color:#008080;">31</span> <span style="color:#000000;">                </span><span style="color:#0000ff;">bool</span><span style="color:#000000;"> publish)<br></br></span><span style="color:#008080;">32</span> <span style="color:#000000;">        {<br></br></span><span style="color:#008080;">33</span> <span style="color:#000000;">            </span><span style="color:#008000;">//</span><span style="color:#008000;"> If this post is a draft (false), don't do anything<br></br></span><span style="color:#008080;">34</span> <span style="color:#008000;">            </span><span style="color:#008000;">//</span><span style="color:#008000;"> if it's an actual publish, then publish = true;</span><span style="color:#008000;"><br></br></span><span style="color:#008080;">35</span> <span style="color:#008000;"></span><span style="color:#000000;">            </span><span style="color:#0000ff;">if</span><span style="color:#000000;"> (</span><span style="color:#000000;">!</span><span style="color:#000000;">publish)<br></br></span><span style="color:#008080;">36</span> <span style="color:#000000;">                </span><span style="color:#0000ff;">return</span><span style="color:#000000;">;<br></br></span><span style="color:#008080;">37</span> <span style="color:#000000;"><br></br></span><span style="color:#008080;">38</span> <span style="color:#000000;">            </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> updateTwitter </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">string</span><span style="color:#000000;">.Format(</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;{</span><span style="color:#800080;">0</span><span style="color:#000000;">} </span><span style="color:#000000;">-</span><span style="color:#000000;"> {</span><span style="color:#800080;">1</span><span style="color:#000000;">}</span><span style="color:#000000;">&</span><span style="color:#000000;">quot;,<br></br></span><span style="color:#008080;">39</span> <span style="color:#000000;">                publishingContext.PostInfo.Title,<br></br></span><span style="color:#008080;">40</span> <span style="color:#000000;">                publishingContext.PostInfo.Permalink);<br></br></span><span style="color:#008080;">41</span> <span style="color:#000000;"><br></br></span><span style="color:#008080;">42</span> <span style="color:#000000;">            </span><span style="color:#008000;">//</span><span style="color:#008000;"> Code to update Twitter</span><span style="color:#008000;"><br></br></span><span style="color:#008080;">43</span> <span style="color:#008000;"></span><span style="color:#000000;">        }<br></br></span><span style="color:#008080;">44</span> <span style="color:#000000;">    }<br></br></span><span style="color:#008080;">45</span> <span style="color:#000000;">}</span></div>

編譯完之後,會發現無法收到callback event… 持續探討(The New Live Writer SDK) 的原始碼之後。 發現問題可能出在

<div><!--<br></br><br></br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br></br>http://www.CodeHighlighter.com/<br></br><br></br>--><span style="color:#008080;"> 1</span> <span style="color:#000000;">    </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">class</span><span style="color:#000000;"> HelloWorldPlugin : ContentSource<br></br></span><span style="color:#008080;"> 2</span> <span style="color:#000000;">    {<br></br></span><span style="color:#008080;"> 3</span> <span style="color:#000000;">        </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">override</span><span style="color:#000000;"> DialogResult CreateContent(IWin32Window dialogOwner, </span><span style="color:#0000ff;">ref</span><span style="color:#000000;"> </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> content)<br></br></span><span style="color:#008080;"> 4</span> <span style="color:#000000;">        {<br></br></span><span style="color:#008080;"> 5</span> <span style="color:#000000;">            content </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;"><b>Hello World!</b></span><span style="color:#800000;">"</span><span style="color:#000000;">;<br></br></span><span style="color:#008080;"> 6</span> <span style="color:#000000;"><br></br></span><span style="color:#008080;"> 7</span> <span style="color:#000000;">            </span><span style="color:#0000ff;">return</span><span style="color:#000000;"> DialogResult.OK;<br></br></span><span style="color:#008080;"> 8</span> <span style="color:#000000;">        }<br></br></span><span style="color:#008080;"> 9</span> <span style="color:#000000;">    }<br></br></span><span style="color:#008080;">10</span> <span style="color:#000000;"></span></div>

也就是主要是因為有implement ContentSource 的關係,造成無法收到相關的event。 這個主要原因可能有待詳細查看。當你改好並且把DLL 複製好之後你就會在你的blog 的plugin上面查看到。

WLW0908.jpg

以上..

第一個Windows Live Writer plugin "Hello World" (sample code)

這裡敘述的Hello Wolrd主要是利用Ben Hall的一篇文章Windows Live Writer Plugin - Hello World!。 (Related code and article refer from this)

必要工具:

  • Visual Studio (這裡用的是2005)

  • 安裝過的Window Live Writer (這裡裝的是最新版B14.0.8089)

詳細流程:

  • 開啟Visual Studio(2005),選取C# Project的Class Library。

WLW_01.jpg

  • 講兩個需要用的reference 加入參考,首先打開”References” 按下右鍵。”Add References”

WLW_02.jpg

  • 加入一個”System.Windows.Forms”在COM裡面,此外再加入一個額外Windows Live Writer API DLL。選取”Browse”然後點選C:Program FilesWindows LiveWriterWindowsLive.Writer.Api.dll。

WLW_03.jpg

  • 加入以下的source code. (This source modify from Ben Hall’s article)

    using System.Windows.Forms;
    </br>using WindowsLive.Writer.Api;
    </br>
    </br>namespace LiveWriterHelloWorld
    </br>{
    </br> [WriterPluginAttribute
    </br> (“2f437bf1-fe57-41c8-931a-d20066ea174e”, “Hello World!”,
    </br> PublisherUrl = “http://wlwextensionlearning.blogspot.com/”,
    </br> Description = “Insert Hello World! into the blog post”)]
    </br> [InsertableContentSourceAttribute(“Hello World!”, SidebarText = “Hello World!”)]
    </br> public class HelloWorldPlugin : ContentSource
    </br> {
    </br> public override DialogResult CreateContent(IWin32Window dialogOwner, ref string content)
    </br> {
    </br> content = “Hello World!”;
    </br>
    </br> return DialogResult.OK;
    </br> }
    </br> }
    </br>}
    </br>

  • 複製DLL到C:Program FilesWindows LiveWriterPlugins 然後重新啟動Windows Live Writer應該就會看到這個新的plugin.

WLW_04.jpg

  • 直接按下去就會跑出 “Hello World”

參考文章: