单实例检测示例

更新:2007 年 11 月

此示例演示如何为独立的应用程序实现单实例检测。

此示例演示 Windows Presentation Foundation 的特定功能,因此未遵循应用程序开发的最佳做法。有关 Windows Presentation Foundation (WPF) 和 Microsoft .NET Framework 应用程序开发的最佳做法的全面介绍,请相应地参考以下主题:

辅助功能 - 辅助功能最佳方案

本地化 - WPF 全球化和本地化概述

性能 - 优化 WPF 应用程序性能

安全 - Windows Presentation Foundation 安全性

Download sample

生成示例

  • 安装 Windows 软件开发工具包 (SDK) 并打开其生成环境命令窗口。在“开始”菜单上,指向“所有程序”、“Microsoft Windows SDK”,然后单击“CMD Shell”。

  • 将示例(通常位于软件开发工具包 (SDK) 文档中)下载到您的硬盘。

  • 若要从生成环境命令窗口生成示例,请转到示例的源目录。在命令提示符处,键入 MSBUILD。

  • 若要在 Microsoft Visual Studio 中生成示例,请加载示例解决方案或项目文件,然后按 Ctrl+Shift+B。

运行示例

  • 若要从生成环境命令窗口运行已编译的示例,请执行示例源代码文件夹下包含的 Bin\Debug 或 Bin\Release 文件夹中的 .exe 文件。

  • 若要在 Visual Studio 中调试运行已编译的示例,请按 F5。

备注

开发单实例检测的最常见且最可靠的技术是使用 Microsoft .NET Framework 远程处理 基础结构 (System.Remoting)。Microsoft .NET Framework(2.0 版)包含类型 WindowsFormsApplicationBase,此类型封装了必要的远程处理功能。若要将此类型结合到 WPF 应用程序中,需要从其派生一个类型,并将后者用作应用程序静态入口点方法 Main 与 WPF 应用程序的 Application 类型之间的程序。该程序检测应用程序何时首次启动以及何时尝试后续启动,从而控制 WPF Application 类型来确定如何处理这些启动操作。

ms771662.alert_note(zh-cn,VS.90).gif说明:

WindowsFormsApplicationBase 能够启动自己的消息处理过程,尽管它从不使用此示例中演示的技术来启动该过程。相反,WPF 消息泵照常进行处理。

请参见

参考

WindowsFormsApplicationBase