須要實現的需求以下:html
程序啓動分2種:正常帶窗口(手動啓動);靜默不帶窗口直接顯示托盤(開機啓動;自動更新後啓動)web
遇到的難點及解決:session
因爲程序用用到全局熱鍵截屏(由RegisterHotKey...實現),發現最小化托盤後就有問題了。最後發現去掉"this.ShowInTaskbar=false;"就能夠了。至於緣由沒有深究。但要是沒有這句的話,開機帶參數靜默啓動時會出現閃屏,並且更嚴重的是,自動更新是經過後臺一個服務控制的,因此自動更新後啓動前臺程序須要session0穿透。經過這個方式啓動要不顯示界面,必須須要"this.ShowInTaskbar=false;",一個矛盾點就這樣產生了,因此必須搞明白"this.ShowInTaskbar=false「這句到底作了什麼。最後終於明白:原來是ShowInTaskbar值改變後程序的句柄會改變。以前註冊熱鍵的句柄就找不到了。因此就好辦了,加上在靜默啓動中保留"this.ShowInTaskbar=false;",而後每次改變ShowInTaskbar值後都從新取消熱鍵再註銷熱鍵。this
最後將所查相關資料遇到不錯的文章留下來.spa
http://ly4cn.cnblogs.com/archive/2006/03/16/351205.html?Pending=true#Post.net
http://smalldust.cnblogs.com/archive/2006/03/29/361807.htmlorm
http://topic.csdn.net/u/20090422/17/87f283c1-eb65-4817-9988-b7f543f9217c.html
http://topic.csdn.net/u/20090616/09/6ffbba46-e1a3-4ba0-aef1-355e6ee3cc5b.htmlhtm