如何使用windows service C#.net在文件中列出所有打开的应用程序?
我发现了一段代码,它是在控制台应用程序中编写的,也可以工作。 这是密码如何使用windows service C#.net在文件中列出所有打开的应用程序?,c#,.net,windows,service,C#,.net,Windows,Service,我发现了一段代码,它是在控制台应用程序中编写的,也可以工作。 这是密码 Process[] processlist = Process.GetProcesses(); foreach (Process process in processlist) { if (!String.IsNullOrEmpty(process.MainWindowTitle)) {
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
Console.WriteLine("Process: {0} ID :{1} Window Title :{2}", process.ProcessName, process.Id, process.MainWindowTitle);
}
}
我已经像这样修改了代码
StreamWriter str = new StreamWriter("D:\\loop.txt", true);
str.WriteLine("**** List of Application *********");
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
str.WriteLine("Process: {0} ID :{1} Window Title :{2}", process.ProcessName, process.Id, process.MainWindowTitle);
}
}
str.close();
但它在windows服务中不起作用。我犯了错误吗?我不熟悉windows服务。有人能帮我吗?我该怎么办 你忘记去小溪了
引述:
您必须调用Close以确保所有数据都正确地写入底层流。调用Close后,StreamWriter上的任何操作都可能引发异常。如果磁盘空间不足,调用Close将引发异常
更正代码:
StreamWriter str = new StreamWriter("D:\\loop.txt", true);
str.WriteLine("**** List of Application *********");
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
str.WriteLine("Process: {0} ID :{1} Window Title :{2}", process.ProcessName, process.Id, process.MainWindowTitle);
}
}
str.Close(); // You need to close the stream
备选方案:
你有什么错误?我没有任何错误。但在循环文件中,只编写了程序的第一行,即“******应用程序列表*******”。实际上,我已经关闭了流,这里我只是没有提到这一点。谢谢你的“使用”概念。
using (StreamWriter str = new StreamWriter("D:\\loop.txt", true))
{
str.WriteLine("**** List of Application *********");
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
str.WriteLine("Process: {0} ID :{1} Window Title :{2}", process.ProcessName, process.Id, process.MainWindowTitle);
}
}
}