用Delphi做的窗口置顶小工具对EXCEL等无窗口句柄的无效

踏雪无痕 2015-02-17 06:00:33
我用Delphi做的窗口置顶小工具,对有窗口句柄的任何程序都有效,包括网页,各种播放器等等,但是对OFFICE办公软件,例如:EXCEL却没有效果,我百度了一下,原因出在windowfrompoint只能获取有窗口的句柄,无窗口的句柄获取不到,或者说获取到的不是真实的窗口句柄,以至于,设置置顶效果无效。

请大神指教,感谢!

部分代码:
if GetCursorPos(Point) then {如果能获取点}
begin
HWND := WindowFromPoint(Point); // 取鼠标点击的窗体句柄
ReleaseCapture; // 终止捕获鼠标输入
end;
if HWND <> Handle then
begin
if GetWindowRect(HWND, Rc) then
begin
SetWindowPos(HWND, HWND_TOPMOST, Rc.Left, Rc.Top, Rc.Right - Rc.Left, Rc.Bottom - Rc.Top, SWP_SHOWWINDOW);
end;
end
...全文
295 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-02-18
  • 打赏
  • 举报
回复


编写了一个小程序。经检测Office的窗体都不能通过获取鼠标获取窗体的句柄。
建议:
1、试试通过控件获取父控件直到窗口句柄;
2、通过获取Word和EXCEl句柄后,均能置顶;
3、通过其它方式,一定要获取窗口的句柄(不能中控件的句柄),才能置顶。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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