2012-11-11 26 views
1

我有一个简单的问题。如何从我的C#代码以编程方式访问aero snap。就像,如果我点击一个按钮“Snap Left”,我希望我的程序窗口能够在左边捕捉,就像在手动药物时那样。我仔细观察过所有的问题,但所有的问题似乎都是关于空气管理的问题,而不是与表格一起工作,并且阻止了它的形式。不以编程方式捕捉表单。我很高兴使用互动。谢谢如何以编程方式使用C#代码中的航空捕捉功能

回答

5

假设您在Windows 7上,您可以做的是将AreoSnap Keypress发送到当前活动的窗口。

This codeproject有一个非常不错的文章,就这样做。

也检查出this SO问题。

看来有一种方法可以在User32.dll中使用sendmessage

下面是一个例子,假设“记事本”是您要的击键发送到程序:

[DllImport("user32.dll", EntryPoint = "FindWindowEx")] 
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); 
[DllImport("User32.dll")] 
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam); 
private void button1_Click(object sender, EventArgs e) 
{ 
    Process [] notepads=Process.GetProcessesByName("notepad"); 
    if(notepads.Length==0)return;    
    if (notepads[0] != null) 
    { 
     IntPtr child= FindWindowEx(notepads[0].MainWindowHandle, new IntPtr(0), "Edit", null); 
     SendMessage(child, 0x000C, 0, textBox1.Text); 
    } 
} 
+0

那么这是一个很酷的主意!我认为这应该工作。谢谢。 +1 – FrostyFire

相关问题