I have created a program that runs as a windows service and gets a list of the processes currently running on the computer and checks the title of the main window for a key word, if that word is found it closes the process.
here is the method:
public void KillProcessByWindowTitle(string title, bool caseSensitive)
{
Process[] myPSList = Process.GetProcesses();
foreach (Process p in myPSList)
{
if (caseSensitive)
{
if (p.MainWindowTitle.Contains(title))
{
p.Kill();
}
}
else
{
string mainWindowTitle = p.MainWindowTitle;
mainWindowTitle = mainWindowTitle.ToLower();
title = title.ToLower();
if (mainWindowTitle.Contains(title))
{
p.Kill();
}
}
}
}
It seems to not be able to get the window names. I can get a list of the process just fine.
It is pretty annoying to debug this because you can't run a windows service in the debugger. I added a textwriter that writes the name of the process and any title it pulls.
When I run this method in a test app that runs like a normal windows program it works perfect. The textfile has Process:
title: . When it runs as a windows service the titles do not come through. My text file has Process: title:
I have tried to run the service as a local user instead of Local System. I tried adding "." to the GetProcesses();
Anyone have any ideas?
Thanks,