在Windows服务中,怎样根据是否ping通服务器来决定执行A.exe还是B.exe?在正常情况下,运行着A.exe和MyService,其中MyService用来判断是否可以ping通服务器,这点是做好了的,现在想让
当Ping服务器失败时,A关闭,而开始执行B。 这样该怎么做?A B 和 MyService 这三个应用程序都是在一个文件夹下的。 protected override void OnStart(string[] args)
{ t.Elapsed += new ElapsedEventHandler(t_Elapsed);
} private void t_Elapsed(object sender, ElapsedEventArgs e)
{
if(!ping通)
{
执行B.EXE // ?
}
if(恢复ping通)
{ 恢复执行A.exe // ? }
}
当Ping服务器失败时,A关闭,而开始执行B。 这样该怎么做?A B 和 MyService 这三个应用程序都是在一个文件夹下的。 protected override void OnStart(string[] args)
{ t.Elapsed += new ElapsedEventHandler(t_Elapsed);
} private void t_Elapsed(object sender, ElapsedEventArgs e)
{
if(!ping通)
{
执行B.EXE // ?
}
if(恢复ping通)
{ 恢复执行A.exe // ? }
}
如果没有理解错的话,你的MyService应该是个系统服务吧,你需要在服务管理器中将你的MyService设置为允许与桌面应用程序交互.
void kill(string proc_name)
{
Process[] ps = Process.GetProcessesByName(proc_name);
foreach(Process p in ps)
{
if(p.ProcessName.ToLower() == proc_name)
{
p.Kill();
break;
}
}
}
我的MyService 是用C#开发的 Windows 服务程序。 怎样设置“服务管理器中将你的MyService设置为允许与桌面应用程序交互”?
这样 在进程里面有B。exe 。 但是B并没有运行窗体,只是在进程里面可以看到,这是怎么回事?
在Installer的AfterInstall实件中调用
SetServiceDesktopInsteract("你的服务名称");
来实现与桌面交互,或者在服务管理中设置,都可以.搞windows开发对系统不熟悉就算代码再厉害也是没用的,你需要去全面了解一下操作系统了.
ping 的时候 发现
ping 通了 执行A
可以 Process.Start(“A.EXE”) 来实现
ping 不通了 执行B
可以 Process.Start(“B.EXE”) 来实现
进行有A。exe。 但是A是一个窗体程序,本应该打开窗体,但是A窗体没有显现。而知识进程中有,这是怎么回事?