问个超简单问题.
运行A程序的时候检测是否有B程序在运行.如果B程序在运行则启动A程序,如果没有B程序运行,则弹处提示,并推出A程序,
谢谢.
问题点数:20、回复次数:6Top
1 楼s5689412(华君)回复于 2005-11-19 21:34:00 得分 0
可以采用枚举进程名的方法,
Process [] localAll = Process.GetProcesses();
然后对Process数组进行遍历,看看符合条件的进程是否存在。Top
2 楼chenggongle(yumeno)回复于 2005-11-19 21:58:55 得分 0
枚举是一直持续循环还是只循环一次?Top
3 楼zhzuo(秋枫)回复于 2005-11-19 22:56:26 得分 0
/// <summary>
/// 获取应用程序的实例,没有其它的例程,返回Null
/// </summary>
/// <returns></returns>
public static Process GetRunningInstance()
{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
//遍历正在有相同名字运行的例程
foreach (Process process in processes)
{
//忽略现有的例程
if (process.Id != current.Id)
//确保例程从EXE文件运行
if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName)
//返回另一个例程实例
return process;
}
return null;
}Top
4 楼chenggongle(yumeno)回复于 2005-11-19 23:05:10 得分 0
注意我说的A程序和B程序是两个完全不同的程序,Top
5 楼zhy0101(莠)回复于 2005-11-20 10:09:12 得分 0
只要把楼上的改成判断process.ProcessName和B一不一样就行了Top
6 楼cjzlxy(享受孤独)回复于 2005-11-20 11:19:31 得分 20
//关闭SM进程
System.Diagnostics.Process[] process =
System.Diagnostics.Process.GetProcessesByName("B程序名");
if(process.Length <=0)
{
MessageBox.Show("B程序没运行.");
Application.Exit();
}
Top




