2

簡単な質問があります。C# コードからプログラムで Aero スナップにアクセスするにはどうすればよいですか。同様に、「左にスナップ」ボタンをクリックすると、手動でドラッグしたときと同じように、プログラムウィンドウが左にスナップします。私はSO全体を見ましたが、すべての質問は、エアロスナップがフォームで機能せず、フォームをスナップしないようにすることに関するものであるようです. プログラムでフォームをスナップしない。インターロッピングを使用して喜んでいます。ありがとう

4

2 に答える 2

5

Windows 7 を使用していると仮定して、現在アクティブなウィンドウに AreoSnap Keypress を送信することができます。

このコードプロジェクトには、まさにそれを行うための非常に優れた記事があります。

このSOの質問もチェックしてください。

これを行う 1 つの方法はsendmessage、User32.dll で使用することのようです。

これは、「メモ帳」がキーストロークを送信したいプログラムであると仮定した場合の例です。

[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);
    }
}
于 2012-11-11T22:03:03.593 に答える
1

これも行う必要があり、Windows Input Simulatorが非常に役立つことがわかりました。

于 2014-02-18T16:36:32.870 に答える