C# 启动WinForm应用程序AeroSnap右对齐

C# 启动WinForm应用程序AeroSnap右对齐,c#,winforms,aero-snap,C#,Winforms,Aero Snap,这应该是一个简单的问题,但search foo让我失望了。我的目标是检测我是否在Aero(Vista或Windows 7)下运行,并默认使用我的应用程序Aerosnap。(事实证明,我编写的一个公司应用程序几乎是由所有人运行的,他们的Outlook都是从右边截取的,而他们的Outlook则是从左边截取的。) 应用程序是WinForms,我目前正在做 Width = Screen.PrimaryScreen.WorkingArea.Size.Width / 2; Height = Screen.P

这应该是一个简单的问题,但search foo让我失望了。我的目标是检测我是否在Aero(Vista或Windows 7)下运行,并默认使用我的应用程序Aerosnap。(事实证明,我编写的一个公司应用程序几乎是由所有人运行的,他们的Outlook都是从右边截取的,而他们的Outlook则是从左边截取的。)

应用程序是WinForms,我目前正在做

Width = Screen.PrimaryScreen.WorkingArea.Size.Width / 2;
Height = Screen.PrimaryScreen.WorkingArea.Size.Height;
Top = Screen.PrimaryScreen.WorkingArea.Top;
Left = Screen.PrimaryScreen.WorkingArea.Left + 
       Screen.PrimaryScreen.WorkingArea.Size.Width / 2;
在我的窗体的加载事件中。这非常有效,但如果他们使用WindowKey+Arrow,就好像它只是一个正常定位的表单。这意味着WindowKey+Right在第一次按下时不执行任何操作,WindowKey+Left会向左捕捉。这不是一个大问题,但我更愿意指定一个窗口大小,然后将应用程序捕捉到右侧,使这些键与其他任何应用程序一样工作

我不确定这是否可行,以下是我确实发现的情况:


这些似乎表明没有特殊的AeroSnap信息可用。有人知道其他的吗?

不知道为什么检查版本不能让你获得大部分的成功。 如何用visualc#确定Windows版本


这可能会让你走完剩下的路

弄清楚我是否在运行Aero似乎不是一个问题,问题实际上归结为是否可以在代码中实现捕捉定位。此时,我已将窗口扩展到比捕捉定位通常要大一点的位置,因此至少WindowKey+Right可以在视觉上执行某些操作。