我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开。
那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭。也就是是否存在另一个程序在运行。
<!--more-->
下面是一个简单方法
singleInstanceWatcher = new Semaphore(
0,
1,
Assembly.GetExecutingAssembly().GetName().Name, out createdNew);
if (createdNew)
{
}
else
{
MessageBox.Show("请不要重复运行(ノ`Д)ノ");
Environment.Exit(-2);
}
另一个方法
string mutexName = Properties.Resources.ProgramTitle + "Mutex"
singleInstanceWatcher = new Mutex(false, mutexName, out createdNew)
if (!createdNew)
{
MessageBox.Show("程序已经运行!", "错误", MessageBoxButton.OK, MessageBoxImage.Error)
Environment.Exit(-1)
}
bool createdNew
System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew)
if (createdNew)
{
Application.Run(new LoginForm())
instance.ReleaseMutex()
}
else
{
Application.Exit()
}
http://www.cnblogs.com/z_lb/archive/2012/09/16/2687487.html
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
在Windows Presentation Foundation(WPF)应用开发中,有时我们需要确保应用程序只能运行一个实例,即实现“单实例应用程序”。这样的设计可以防止用户意外打开多个相同的应用程序窗口,保持系统资源的有效利用。本...
### Winform只允许打开一个实例 在Windows Forms(Winform)应用程序开发中,有时我们希望程序只能运行一个实例,即用户不能重复启动该程序。这种需求常见于许多单例模式的应用场景,例如系统托盘程序、后台服务等...
本文将详细讲解如何使用C#和WPF(Windows Presentation Foundation)实现只允许一个实例运行的应用程序,并将已运行的实例窗口置顶。 首先,我们要了解互斥量(System.Threading.Mutex)。互斥量是一种同步对象,用于...
在本文中,我们将深入探讨WPF(Windows Presentation Foundation)中的火焰图像特效,这是一个适用于初学者学习的精彩实例。WPF是.NET Framework的一部分,为开发者提供了丰富的功能,用于创建具有高度图形化用户...
在“OfficeFilesViewer”这个项目中,很可能是创建了一个WPF应用程序,它能以某种方式打开并显示PPT、Word和Excel文件,可能是通过Interop服务,也可能是借助第三方库。具体实现细节将取决于项目源码。为了提高效率...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)创建一个登录界面,并通过该界面无缝地打开一个基于WinForm的主应用程序窗口。WPF是.NET Framework的一部分,提供了丰富的用户界面(UI)...
`MyForm`可能是这个项目中的一个自定义窗口类,继承自`Window`,并可能包含了特定的设计和功能。 要实现酷炫的打开效果,我们可以利用动画和效果。WPF提供了强大的动画系统,允许我们为窗口的显示和关闭添加动态...
这个例子展示了如何通过TranslateTransform动画改变UI元素的位置,模拟一个门打开或关闭的效果。TranslateTransform允许元素沿X轴或Y轴平移,通过设置From和To属性,我们可以让元素沿着指定路径移动。Storyboard控制...
在"WPF的MVVM模式编程实例3"中,开发者可能创建了一个包含多个命令绑定的用户界面。例如,你可能会看到一个主窗口,其中包含多个按钮,每个按钮都绑定了不同的DelegateCommand。这些命令可能用于打开新窗口、保存...
用户控件是一种复合控件,它允许开发者将多个基本控件组合在一起,形成一个新的具有特定功能的控件。这在创建复杂的UI布局或重用代码时非常有用。在我们的小例子中,我们可能会创建一个用户控件,例如一个包含按钮、...
**另一方面,Silverlight是微软推出的一个轻量级的插件技术,用于在Web浏览器中创建富媒体和交互式内容。类似于WPF,它也使用XAML进行界面描述,并支持多种动画和媒体功能。Silverlight尤其适合开发跨平台的Web应用...
TreeList控件在WPF中是一个非常有用的组件,它允许我们展示层次结构的数据,类似于Windows资源管理器的文件系统视图。 首先,让我们理解WPF TreeView控件的基础。TreeView是WPF中用于显示数据的树形结构视图,它...
C# 只能运行一个winForm进程是指在C#中实现单实例应用程序,确保同一个应用程序只能运行一个实例,以避免资源浪费和混乱。下面将详细介绍如何实现单实例应用程序。 单实例应用程序的实现 在C#中,实现单实例应用...
本示例中的"LoginDemo"是基于WPF和MVVM模式的一个登录窗口应用,涵盖了多个关键知识点。 1. **MVVM模式基础**:MVVM模式的核心在于ViewModel,它是View和Model之间的桥梁。ViewModel通过属性和命令暴露其功能,View...
WPF(Windows Presentation Foundation)是微软.NET框架...总之,这个压缩包提供了一个全面的WPF动画效果学习资源,无论是初学者还是有经验的开发者,都能从中受益,提升自己在创建生动、交互性强的WPF应用方面的能力。
Windows Presentation Foundation(WPF)是.NET Framework的一个重要组成部分,用于构建桌面应用程序。在WPF中,Metro风格是一种灵感来源于Microsoft Windows 8及其Modern UI设计语言的设计风格,它强调简洁、清晰和...
首先,你需要创建一个`MediaCapture`实例,并设置其初始化设置,然后调用`InitializeAsync()`方法来初始化摄像头。 2. **初始化摄像头**: 在初始化过程中,你需要指定是否捕获音频以及视频的分辨率和帧率。这可以...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和C#语言来实现一个串口消息接收客户端,该客户端能执行基本的串口操作,包括串口扫描、连接以及接收和发送消息。WPF是.NET框架的一部分,...
在C#编程中,"打开一个窗体、就关闭一个窗体"的场景通常涉及到Windows Forms或WPF(Windows Presentation Foundation)应用中的窗口管理。在这些类型的应用中,窗体(Form或Window)是用户界面的基本组成部分,用于...
`DelegateCommand`是MVVM(Model-View-ViewModel)模式中常用的一个实现,它简化了`ICommand`的使用,允许直接传入执行方法和判断方法。 在描述中提到的"FirstPro"可能是一个示例项目,展示了如何在WPF中使用界面...