Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用windows service C#.net在文件中列出所有打开的应用程序?_C#_.net_Windows_Service - Fatal编程技术网

如何使用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);
           }
      }
}