全局热键与隐藏窗口启动程序矛盾的解决记录

      须要实现的需求以下: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

相关文章
相关标签/搜索