我需要能够根据来自COM端口的输入在两个第三方应用程序之间切换,即当我从设备接收Command1
时,使App1成为活动(最顶层)窗口,当我从设备接收Command2
,使App2成为活动窗口。我为什么要这样做?该应用程序将在自助服务站上运行,我将监视运动传感器的输入;因此,当没有人在车站前时,我需要显示App2(例如广告),当有人站在前面时,我需要显示App1(例如主应用程序)。
我在考虑一个在后台运行的应用程序,并监听COM端口上的输入并相应地切换活动窗口。所以问题是,如何使用.NET更改活动窗口?操作系统将是Windows XP专业版SP2,但如果它也能在Windows 7上运行则会更好。
答案 0 :(得分:2)
你可以使用;
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
然后按名称或循环GetProcesses
找到相关流程,例如假设一个实例:
Process[] process = Process.GetProcessesByName("myapp");
if (process.Length > 0 && process[0].MainWindowHandle != IntPtr.Zero) {
SetForegroundWindow(process[0].MainWindowHandle);
}