繁体   English   中英

我如何以编程方式使用C#代码中的Aero捕捉功能

[英]How can i programmatically use aero snap features from C# code

我有一个简单的问题。 如何从C#代码以编程方式访问aero snap。 就像,如果我单击“向左对齐”按钮,我希望程序窗口向左对齐,就像手动将药物停在那儿一样。 我到处都是,但是所有的问题似乎都与aero snap不与表单一起工作,并阻止它捕捉表单有关。 没有以编程方式对齐表格。 我很高兴使用插值。 谢谢

假设您使用的是Windows 7,您可以做的是将AreoSnap按键发送到当前活动的窗口。

代码项目中有一篇非常不错的文章。

还要检查这个 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);
    }
}

我还需要这样做,并且发现Windows Input Simulator非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM