完善了“如何在C#中使用Win32和其他库”中关于EnumDesktops()函数的回调代码,可运行。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { delegate bool EnumDesktopProc([MarshalAs(UnmanagedType.LPTStr)]string desktopName, int lParam); [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern bool EnumDesktops(IntPtr windowStation, EnumDesktopProc callback, int lParam); [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern IntPtr GetProcessWindowStation(); static bool OnDesktop(string name, int param) { Console.WriteLine(name); return true; } static void Main(string[] args) { EnumDesktops(GetProcessWindowStation(), OnDesktop, 0); } } }