アンマネージコードを使用してこれを行うことができます。あなたのハンドルをピックアップしてエクスプローラのプロセスを識別し、その後
class RectMethods
{
// http://msdn.microsoft.com/en-us/library/ms633519(VS.85).aspx
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
// http://msdn.microsoft.com/en-us/library/a5ch4fda(VS.80).aspx
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}
}
、および座標と、ウィンドウのサイズを取り、そこから、あなたがやりたいことができます:
クラスを作成します
var processes = System.Diagnostics.Process.GetProcesses();
foreach (var process in processes)
{
if (process.ProcessName == "explorer")
{
var hWnd = process.Handle;
RectMethods.RECT rect = new RectMethods.RECT();
if (RectMethods.GetWindowRect(hWnd, ref rect))
{
Size size = new Size(rect.Right - rect.Left,
rect.Bottom - rect.Top);
}
}
}
プロパティの設定/ビルドの「危険なコードを許可する」...
は、あなたが、その後のPInvokeを同様の記事を検索し、必要がありますので、あなたが実行中のプロセスとそのウィンドウを照会するためのネイティブのWin32 APIにあります。 –
@LexLi私は検索しましたが、Windowsエクスプローラのウィンドウ位置を取得する方法がありませんでした。 –