软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|开发客
您现在的位置: 天极网 > 开发频道 > WPF程序单例实现
全文

WPF程序单例实现

2008-07-22 10:45作者:ibillguo出处:天极网责任编辑:nancy

  大家肯定碰到过不少程序在一个机器上只能启动一次的吧。

  比如傲游,windows media player等等。

  而在WPF应用程序如何实现这个功能呢?

  具体实现如下:

  在创建WPF应用程序后

  在App.xaml.cs文件中实现如下代码就可以了

  1protected override void OnStartup(StartupEventArgs e)
  2{
  3 Process process = Process.GetCurrentProcess();
  4
  5 foreach (Process p in Process.GetProcessesByName(process.ProcessName))
  6 {
  7 if (p.Id != process.Id)
  8 {
  9
  10 //关闭第二个启动的程序
  11
  12 MessageBox.Show("您的程序已经启动!");
  13
  14 Application.Current.Shutdown();
  15
  16 return;
  17
  18 }
  19 }
  20 base.OnStartup(e);
  21}

  解释如下:

  当您启动该应用程式时,先获得当前启动的应用程序的当前进程,

  通过得到的这个进程来取得进程名(也就是你当前程序的名字),

  通过遍历所有该进程名名下的进程,

  比对所有进程编号(进程编号是唯一的),

  如果是第一次启动,那么当前进程名名下的进程编号肯定是全部和取得的当前进程的编号是一致的,

  但是如果是第二次启动,由于之前已经有其他进程注册到了我们的当前的程序名下了,

  和当前的进程编号比对一下肯定就不一致了,

  从而关闭当前当前启动的第二个应用程序。

相关搜索:
关注此文读者还看过
热门关注
特别推荐
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众