当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)

原文参见:http://weblogs.asp.net/avnerk/archive/2007/04/14/preventing-outlook-from-closing-with-alt-f4.aspx
(翻译的只是大体意思,并不是原文对译:)

在一些情况下,我一直不希望关闭Outlook。实际上除了一些特殊情况,我并不需要关闭Outlook,比如当我想释放内存或者开发调试时才需要关闭Outlook。在日常工作中,我希望它一直打开和最小化。
为了方便操作,我希望直接用原有的Alt-F4快捷键来使其最小化,而不是关闭它。

要实现这个操作,需要使用VSTO 2005 和动态链接库HookLibrary.zip 

操作步骤如下:
1、建立一个Outlook外接程序项目
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)

2、加入HookLibrary 的引用

3、在事件ThisAddin_Startup中加入以下代码

当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)private KeyboardHook altF4Hook;
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
private void ThisAddIn_Startup(object sender, System.EventArgs e)
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
{
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)   altF4Hook 
= new HookLibrary.KeyboardHook();
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)   
// false/true/false is for ctrl/alt/shift modifiers, respectively.
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
   altF4Hook.AddFilter(Keys.F4, falsetruefalse);
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)   altF4Hook.KeyPressed 
+= new KeyboardHookEventHandler(altF4Hook_KeyPressed);
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)   altF4Hook.Install();
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)}
 
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
void altF4Hook_KeyPressed(object sender, KeyboardHookEventArgs e)
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
{
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)   Outlook.Explorer exp 
= Application.ActiveExplorer();
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)   exp.WindowState 
= Microsoft.Office.Interop.Outlook.OlWindowState.olMinimized; 
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)}
 
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译) 
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)
当按下Alt-F4时阻止关闭Outlook,使其最小化(翻译)

然后编译执行就可以了,如果需要在其他机器上使用,需要生成msi安装包。我试了一下,效果不错

代码下载:OutlookShutdownMinimizer.zip



    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/04/17/716783.html,如需转载请自行联系原作者