編集:どうやら、「スタートメニュー」が翻訳ごとに異なるため、これは英語版の Windows でのみ機能するようです。ただし、これは引き続き機能します (Windows が英語でインストールされている限り)。
わかった!これは機能しますが、それがどれほどきれいかはわかりません:
public partial class Form1 : Form {
private void button1_Click(object sender, EventArgs e) {
int ShowCmd = 5;
MoveWindow(FindWindow("DV2ControlHost", "Start menu"), X_POS, Y_POS, WIDTH_HERE, HEIGHT_HERE, false);
ShowWindow(FindWindow("DV2ControlHost", "Start menu"), ShowCmd);
}
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll", SetLastError = true)]
public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int nWidth, int nHeight, bool bRepaint);
}
SO に関するこの質問と、C# 用に修正されたこの MSDN の記事を組み合わせたものです。繰り返しますが、コードがどれほど優れているかはわかりませんが、仕事は完了します。