ShowInTaskbar = false与API -> RegisterHotKey()冲突

linmilove 2009-04-22 05:36:05
我有一程序要求
       注册系统热键-->调用API:RegisterHotKey()
      不显示在任务栏,按Alt+Tab键都不显示 -->this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
                         this.ShowInTaskbar = false;//启用这一句热键就不能用了

但是用了:ShowInTaskbar = false 后注册的系统热键无效了,请问还有其他方法可以注册系统热键
              或 调用API让程序不显示在任务栏 且 在按下Alt+Tab 不显示程序图标
...全文
455 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-07-18
  • 打赏
  • 举报
回复
为什么会这样呢?能详细说明一下就好了。
兔子-顾问 2010-07-18
  • 打赏
  • 举报
回复
原来是这样,学习了。不知道这还有区别。。
xufzu123 2009-04-23
  • 打赏
  • 举报
回复
关注+学习+up~~
boywangliang 2009-04-23
  • 打赏
  • 举报
回复
i学习
顶
gomoku 2009-04-23
  • 打赏
  • 举报
回复
我猜测你RegisterHotKey后才设置ShowInTaskbar=false的。

改变ShowInTaskbar需要另一种风格的窗口,所以它的内部实现是重新创建窗口。
也就是说Form的窗口句柄将发生改变,比如下面代码: i != j :


int i = this.Handle.ToInt32();
this.ShowInTaskbar = ! this.ShowInTaskbar;
int j = this.Handle.ToInt32();


我怀疑你用了this.Handle去登记RegisterHotKey(),结果WM_HOTKEY通知被发送到旧的窗口句柄了。

解决方法:
方法一、尝试先设置ShowInTaskbar,然后登记热键。
方法二、传入IntPtr.Zero(通知到当前线程,而不是具体窗口),然后Application.AddMessageFilter来处理通知。
内容概要:本文研究了计及需求侧响应的日前、日内两阶段鲁棒备用优化问题,提出了一种基于数据驱动的两阶段分布鲁棒优化方法,结合1-范数和∞-范数构造不确定性集合,有效刻画风电、光伏出力及负荷等多重不确定因素的波动特性。研究构建了电热综合能源系统的联合优化模型,通过协调日前调度计划与日内实时调整,充分发挥需求侧响应资源的灵活调节能力,提升系统在不确定性环境下的备用充裕性与运行鲁棒性,并采用Matlab进行建模与仿真验证,结果表明该方法在保障系统安全的同时显著改善了经济性。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员,以及从事新型电力系统调度、综合能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于高比例可再生能源接入背景下电力系统备用容量的优化配置;②为综合能源系统在多重不确定性下的鲁棒调度提供决策支持;③支撑需求侧资源参与系统辅助服务的机制设计与仿真验证,推动源荷互动协调发展。; 阅读建议:建议读者结合Matlab代码深入理解两阶段鲁棒优化的建模过程,重点关注不确定性集构建、鲁棒约束转化及C&CG等求解算法的实现细节,可进一步拓展至其他分布鲁棒优化形式或耦合更多能源形式的综合能源系统场景。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧