我做的是一个监听某个进程的 服务, 测试用的 qq
我设置了个 Timer 每隔多少时间 扫描判断进程中是否有qq.exe
如果没有 将启动qq. 代码如下:
string[] name = new string[2];
name[0] = "QQ";
name[1] = "F:\\fuyun\\Bin\\QQ.exe";//qq路径
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
if (name[0] == p.ProcessName)
{
return;
}
}
// 如果qq已经存在就什么都不干
如果不存在就 打开 打开方式有2种
方式一:System.Diagnostics.Process.Start(name[1]);
方式二:System.Diagnostics.Process pro = new System.Diagnostics.Process();
pro.StartInfo.UseShellExecute = true;
pro.StartInfo.CreateNoWindow = false;
pro.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
pro.StartInfo.FileName = name[1];
pro.Start();
pro.WaitForExit();
出现 的问题是 如果qq没有运行 它会去 运行qq ,可是 qq的登录窗口出不来 只是在进程中出现了qq的进程
而同样的代码 我用 web 做 却能弹出 登录窗口 ,
问题 2 :我要 用XML 记录要监控的 进程 然后从XML 中读取 可是XML的路径不知道如何才能获得 很多方法在服务项目中都没用。
我设置了个 Timer 每隔多少时间 扫描判断进程中是否有qq.exe
如果没有 将启动qq. 代码如下:
string[] name = new string[2];
name[0] = "QQ";
name[1] = "F:\\fuyun\\Bin\\QQ.exe";//qq路径
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
{
if (name[0] == p.ProcessName)
{
return;
}
}
// 如果qq已经存在就什么都不干
如果不存在就 打开 打开方式有2种
方式一:System.Diagnostics.Process.Start(name[1]);
方式二:System.Diagnostics.Process pro = new System.Diagnostics.Process();
pro.StartInfo.UseShellExecute = true;
pro.StartInfo.CreateNoWindow = false;
pro.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
pro.StartInfo.FileName = name[1];
pro.Start();
pro.WaitForExit();
出现 的问题是 如果qq没有运行 它会去 运行qq ,可是 qq的登录窗口出不来 只是在进程中出现了qq的进程
而同样的代码 我用 web 做 却能弹出 登录窗口 ,
问题 2 :我要 用XML 记录要监控的 进程 然后从XML 中读取 可是XML的路径不知道如何才能获得 很多方法在服务项目中都没用。
-----------------------------------------
路径写在配置文件中
比如:
<add key="QQ" value="F:\fuyun\Bin\QQ.exe"/>然后程序中
private string _QQ = System.Configuration.ConfigurationSettings.AppSettings["QQ"];
服务项目中是没有的