【发布时间】:2015-04-24 23:18:01
【问题描述】:
如何比较我的活动应用程序/窗口标题是否等于某个值?例如,我希望我的 WinForms 应用程序仅在某个应用程序处于焦点时才执行其功能。
我尝试使用GetForegroundWindow(),但它不起作用。
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (GetForegroundWindow().ToString() == "Test123")
{
MessageBox.Show("right");
}
else
MessageBox.Show("wrong");
}
所以我的计时器要检查当前窗口标题是否称为“Test123”(注意:不是进程名称,只是窗口标题文本),并告诉我它是对还是错。
【问题讨论】:
-
我似乎无法获得窗口标题。我不知道它试图返回给我什么。
-
它只是给你一个窗口的
IntPtr。您需要将其传递给另一个 Win32 API 调用,以便为您提供实际的标题。 -
在哪里将 timer1_Tick 事件处理程序连接到 timer1?