如何列出所有在C#中具有GUI的正在运行的应用程序?我正在尝试制作某种任务栏,因此我必须知道哪些进程正在运行。我无法列出所有过程,因为那将是一场完全灾难。我的想法是只用gui列出进程,因为这看起来像是在“股票”任务栏中发生的事情。C#列出正在运行的具有GUI的应用程序
0
A
回答
-1
此代码将填充一个下拉菜单,并设置得到它由选择的前景,你可以做这样的
[DllImport("User32.dll")]
static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private void ListTask()
{
Process[] processes = Process.GetProcesses();
foreach (Process process in Process.GetProcesses().
Where(p => !string.IsNullOrEmpty(p.MainWindowTitle)).ToList())
listBox1.Items.Add(process.ProcessName);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Process p = new Process();
string name = listBox1.SelectedItem.ToString();
p = Process.GetProcessesByName(name)[0];
const uint SWP_SHOWWINDOW = 0x0001;
ShowWindow(p.MainWindowHandle, SWP_SHOWWINDOW);
SetForegroundWindow(p.MainWindowHandle);
p.Dispose();
}
-1
您可以列出有一个主窗口中的所有流程:
static IEnumerable<Process> WindowProcesses()
{
foreach(var proc in Process.GetProcesses())
{
if(proc.MainWindowHandle != IntPtr.Zero)
{
yield return proc;
}
}
}
这将枚举所有具有主窗口的进程,但可能不一定列出具有任何可见窗口的所有进程(例如服务)。为此,您需要P/Invoke EnumWindows和GetWindowThreadProcessId。
相关问题
- 1. Applescript - 列出所有正在运行的应用程序
- 2. 探索正在运行的.NET应用程序的GUI控件的工具
- 3. 列出所有正在运行的应用程序MASM32程序集
- 4. Glassfish asadmin列出正在运行的应用程序的端口
- 5. 如何运行通过在C#服务应用程序的GUI应用程序
- 6. C#运行过程中我的应用程序的GUI
- 7. 获取所有正在运行的应用程序的列表
- 8. 正在运行的应用程序,但没有出现
- 9. 带按钮的Obj-C GUI应用程序运行shell脚本
- 10. 在mini2440主板上运行GUI应用程序时出错
- 11. 控制台在运行GUI C++应用程序时打开
- 12. Glade C++应用程序,在运行时GUI设计不一样
- 13. 在没有显示gui的情况下运行gui应用程序
- 14. ThreadPoolExecutor正在运行的应用程序
- 15. 正在运行的facebook应用程序
- 16. pyqt4 gui应用程序不运行
- 17. 在linux上运行GUI应用程序,而不显示gui?
- 18. 找出运行c#应用程序所需的所有文件
- 19. 如何使用UNIX-C/C++列出所有正在运行的进程
- 20. 从VBA调用正在运行的C#应用程序
- 21. C#应用程序打在已经运行的应用程序
- 22. 正在运行的java应用程序的列表?
- 23. Applescript获取正在运行的应用程序的列表?
- 24. 列出所有的应用程序正在运行,内存使用和运行时间
- 25. C#Rich GUI应用程序
- 26. 列出正在运行的进程
- 27. 从正在运行的应用程序通过c运行命令行#
- 28. Application.Quit不退出正在运行的应用程序
- 29. 用于C++应用程序的GUI测试工具
- 30. javax.ejb.EJBException在运行具有GLassfish的Java EE(JPA)应用程序时
将简单列出桌面上的所有窗口的解决方案会好吗? –
如果它列出了最小化的那个,那么它将是完美的。如果只有那些“可见”的,那么它不是真正的答案,但它也将被赞赏,因为我将在稍后需要。 –
查看https://stackoverflow.com/questions/7268302/get-the-titles-of-all-open-windows和https://stackoverflow.com/questions/1032933/enumerate-all-window-handles-on-桌面 –