| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:[求助]C#中只允许有一个应用程序实例运行
只看楼主 加入收藏
zhoche2008
Rank: 1
等 级:新手上路
帖 子:139
专家分:0
注 册:2006-6-12
收藏
 问题点数:0 回复次数:2 
[求助]C#中只允许有一个应用程序实例运行
C#中如何只能有一个应用程序实例运行?
假如现在已经打开exe文件了,如果再次双击,将会再打开一个新的,如果避免这种情况?
当有一个实例在运行时,再打开一个的话将其直接终止,这应该如何做呢?
请高手指点指点
搜索更多相关主题的帖子: 应用程序 实例 运行 
2006-07-14 02:00
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

判斷是否有該應用程序的實例存在
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Diagnostics;
using System.Reflection;

public class OneInstnace
{
[STAThread]
public static void Main()
{
//Get the running instance.
Process instance = RunningInstance();
if (instance == null)
{
//There isn't another instance, show our form.
Application.Run (new Form());
}
else
{
//There is another instance of this process.
HandleRunningInstance(instance);
}
}
public static Process RunningInstance()
{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName (current.ProcessName);

//Loop through the running processes in with the same name
foreach (Process process in processes)
{
//Ignore the current process
if (process.Id != current.Id)
{
//Make sure that the process is running from the exe file.
if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") ==
current.MainModule.FileName)
{
//Return the other process instance.
return process;
}
}
}

//No other instance was found, return null.
return null;
}


public static void HandleRunningInstance(Process instance)
{
//Make sure the window is not minimized or maximized
ShowWindowAsync (instance.MainWindowHandle , WS_SHOWNORMAL);

//Set the real intance to foreground window
SetForegroundWindow (instance.MainWindowHandle);
}

[DllImport("User32.dll")]

private static extern bool ShowWindowAsync(
IntPtr hWnd, int cmdShow);
[DllImport("User32.dll")] private static extern bool
SetForegroundWindow(IntPtr hWnd);
private const int WS_SHOWNORMAL = 1;
}



[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-07-14 08:49
zhoche2008
Rank: 1
等 级:新手上路
帖 子:139
专家分:0
注 册:2006-6-12
收藏
得分:0 
我试了,成功了,非常感谢!!!!!!!!!
Thank you very much

2006-07-16 02:02
快速回复:[求助]C#中只允许有一个应用程序实例运行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051474 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved