我想覆盖第三方应用程序上的关闭按钮,使其最小化该应用程序。 我没有目标应用程序的源代码。
- 我可以用C#编写这样的东西吗?还是需要使用C ++?
- 我如何编写此类挂钩?我需要运行进程还是驱动程序/ DLL /服务就足够了?
据我所知,我认为需要执行以下操作,但我不知道具体如何实现:
使用WH_GETMESSAGE钩子来覆盖WM_CLOSE以将Windows状态设置为WS_MINIMIZE。
我想覆盖第三方应用程序上的关闭按钮,使其最小化该应用程序。 我没有目标应用程序的源代码。
据我所知,我认为需要执行以下操作,但我不知道具体如何实现:
使用WH_GETMESSAGE钩子来覆盖WM_CLOSE以将Windows状态设置为WS_MINIMIZE。
Microsoft Detours(商业软件,如果我没记错的话不免费)(http://research.microsoft.com/en-us/projects/detours/)
EasyHook(LGPL下的开源软件)(http://easyhook.codeplex.com/)
对于C#,这可以非常简单地完成:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (!realClose)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
}
}
当你需要应用程序关闭时,你可以将 realClose
设置为true(例如,不是用户按下关闭按钮时,而是他使用 文件 -> 退出
或类似方式)。
不要那样做。禁用关闭按钮。提供最小化按钮。