だから私はここで提供された答えから例を見つけました
メモ帳ウィンドウを画面の左上隅に移動するコードのこの例を提供する回答がありました。私はそれを試してみましたが、うまくいきました。その後、私が取り組んでいる小さなプロジェクトで試してみましたが、移動できませんでした。
注:移動したいウィンドウの上部にある名前に「メモ帳」を変更しました。
using System;
using System.Runtime.InteropServices; // For the P/Invoke signatures.
public static class PositionWindowDemo
{
// P/Invoke declarations.
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
const uint SWP_NOSIZE = 0x0001;
const uint SWP_NOZORDER = 0x0004;
public static void Main()
{
// Find (the first-in-Z-order) Notepad window.
IntPtr hWnd = FindWindow("Notepad", null);
// If found, position it.
if (hWnd != IntPtr.Zero)
{
// Move the window to (0,0) without changing its size or position
// in the Z order.
SetWindowPos(hWnd, IntPtr.Zero, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
}
}
}
例を挙げます。Visual Studio と、そこにあるソリューション エクスプローラー ウィンドウまたは出力ウィンドウについて考えてみましょう。これらをマウスでドラッグして移動したり、ドッキング解除したりできます。Visual Studio のように内部にウィンドウを持つアプリケーションを作成し、プログラム内でウィンドウの位置を取得する方法はありますか?
ウィンドウの移動やアクティブなウィンドウの検索などについて、ここで多くの回答を見てきました。ただし、別のアプリケーション内にあるこのサブウィンドウにアクセスできるかどうかはわかりません。
ありがとう