如何列出所有在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-桌面 –