【发布时间】:2012-02-27 16:27:36
【问题描述】:
好的,我找到了很多关于按名称查找窗口等的帖子。我没有找到的是如何找到窗口应用程序焦点并将其切换到最后一个活动窗口。我在下面显示的代码将为我提供任务管理器中处于活动状态的活动应用程序列表。
我不知道该怎么做是找出最后一个活动应用程序是哪个应用程序,然后切换到它。比如……
我打开了我的自定义 winform 应用程序。
我点击一个按钮
我的应用程序切换到最后一个活动窗口/应用程序。
这是我目前的工作代码。 (这是按钮上的操作,它希望应用程序有一个名为 textbox1 的文本框。您还需要使用 System.Diagnostics 添加;
private void button1_Click(object sender, EventArgs e)
{
Process[] procs = Process.GetProcesses();
IntPtr hWnd;
foreach (Process proc in procs)
{
if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
{
textBox1.Text += (proc.ProcessName.ToString());
textBox1.Text += "\t";
textBox1.Text += (hWnd.ToString());
textBox1.Text += "\r\n";
}
}
}
【问题讨论】:
-
我已经看过这个了。它对我不起作用。 HWND 在哪个班级?我好像没有 System.Windows.Interop 我有 System.Runtime.InteropServices 但是好像没有这个类。
-
HWND 来自 Windows SDK,代表一个窗口的句柄。
-
您的 cmets 无法帮助我处理您提供的信息。我发布了这个问题,因为我遇到了死胡同。不过我会研究 Windows SDK。
-
您不需要“查看 Windows SDK”。你只需要一个更清晰的指南。你想做什么在互联网上都有解释。你可能只是不懂行话。例如:stackoverflow.com/questions/6434475/…
标签: c# winforms winforms-interop alt-tab