我想阻止用户通过 Alt+F4 或单击“关闭”按钮关闭窗口。
如何做到这一点?
我想 WindowsAPI 可以做到,但我没有任何经验,也找不到具体的解决方案。
当然,能够实现它是很好的,不必使用特定的 API 。
背景:用 Word 来读书,关闭之后过了几天再找到想看的地方变得很难,Word2013 后自带了可以回到之前阅读位置的方法,但是那个东西很不稳定,经常保存不下来。我想在 word 关闭的时候,阻止关闭,并弹出通知提醒,先加入书签再退出。
我想阻止用户通过 Alt+F4 或单击“关闭”按钮关闭窗口。
如何做到这一点?
我想 WindowsAPI 可以做到,但我没有任何经验,也找不到具体的解决方案。
当然,能够实现它是很好的,不必使用特定的 API 。
背景:用 Word 来读书,关闭之后过了几天再找到想看的地方变得很难,Word2013 后自带了可以回到之前阅读位置的方法,但是那个东西很不稳定,经常保存不下来。我想在 word 关闭的时候,阻止关闭,并弹出通知提醒,先加入书签再退出。
|
zhylJul 12, 2020 via Android
1
点击关闭按钮一般是发送 wm_close 消息,hook word 的消息处理函数可以拦截关闭。结束进程是 exitthread 函数,hook 它也能阻止关闭。
|
|
fuchunliuJul 12, 2020 via Android
2
打印成 pdf
|
|
kn007Jul 12, 2020
3
最简单的应该是用 user32.dll 的 SetWindowLongPtrW 方法,把 SYSMENU 去掉
|
|
BBrotherJul 12, 2020
5
如果一定要用 word 的话,可以把要读的部分字体变大,养成习惯就好
|
|
kn007Jul 12, 2020
6
@Mindjet 哦,不好意思,没审题清楚,alt+f4 的话是 SendMessage 给窗口,只能 hook wm_close 信号。
你可以同样使用 SetWindowLongPtrW,然后注册个回调函数,函数抓取 wm_close 信号直接 return 1 就好了,确认无误想关闭的时候用 CallWindowProc 就可以了 |
|
7
|
|
ipwxJul 12, 2020
8
。。。说真的,我觉得打印成 PDF 然后用 whatever 阅读器,你的体验会好很多的。比你折腾这个有效多了。
|
|
YourshellJul 12, 2020
9
刻舟求剑不可取
|
|
10
@ipwx #8 PDF 的主要特点是高度还原内容,在各种平台有良好的一致性,而且任何内容转成 PDF 都很简单。由于这些特点,作为阅读电子书格式的时候不可避免的有些缺点,之前一直用 PDF,现在主要用 Word,互有优劣。
|