簡體   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