我需要编写一个应用来确认Visual Studio的关闭吗?我认为,可以使用WinForms中的FormClosing事件,并且可以取消关闭。
主要需要防止Visual Studio 2017的意外退出。但VS 2015+具有Metro UI。 NoClose从标题栏右键菜单中删除关闭菜单,但无法禁用右上方关闭按钮。
修改
为什么需要这样做:通常我有很多打开的窗户。我使用WhatsApp桌面,这个应用程序不是全屏启动。但看起来它已经最大化了。当我尝试通过将指针移动到屏幕顶部(在我的右侧监视器上,甚至没有检查窗口是否最大化)来快速关闭它时,我实际上单击该窗口下的应用程序。这主要是Visual Studio。最终VS关闭了。我正在使用一个非常大的解决方案,因此打开或关闭解决方案需要很长时间。由于VS不是开源的,我需要以某种方式确认退出。这很烦人,而且经常发生(一天2-3次)。
另请注意,我并不是唯一需要此功能的开发人员,而其他IDE已经有这样的选择。
答案 0 :(得分:2)
创建了一个简单的(单行)扩展。 应该这样做:提示关闭Visual Studio :)
https://marketplace.visualstudio.com/items?itemName=NikolayBelyh.ClosePrompt2017
只需使用“QueryClose”包来提升提示:
Gimme 5星如果有效^ _ ^
答案 1 :(得分:1)
引用强大的Raymond Chen:
可用性研究表明,当您禁用“关闭”按钮时,用户真的不喜欢它。这让他们感到困惑和不舒服。这就是为什么标准Windows向导无法为您提供禁用“关闭”按钮的方法的原因。用户应该总是有出路。
我认为这是一个你不关心的问题,只是想要一个解决方案而他also demonstrates a way禁用关闭按钮/菜单:
void DisableCloseButton(HWND hwnd)
{
EnableMenuItem(GetSystemMenu(hwnd, FALSE), SC_CLOSE,
MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
void EnableCloseButton(HWND hwnd)
{
EnableMenuItem(GetSystemMenu(hwnd, FALSE), SC_CLOSE,
MF_BYCOMMAND | MF_ENABLED);
}
根据应用程序的不同,这可能还不够,在这种情况下,您需要inject代码进入应用程序并对窗口进行子类化,以便您可以处理WM_CLOSE
。