无效的窗口句柄

本文关键字:窗口句柄 无效 | 更新日期: 2023-09-27 17:49:44

我正在编写一个应用程序,以改变窗口的位置在c#屏幕上使用setwindowpos,但当我想获得主窗口句柄从进程类使用MainWindowHandle所有时间我得到零。我做错了什么。

public void run()
{
    string patch = "1.pdf";
    Process p = new Process();
    ProcessStartInfo pi = new ProcessStartInfo();
    pi.UseShellExecute = true;
    pi.FileName = @patch;
    p.StartInfo = pi;
    p.Start();
    Thread.Sleep(1000);
    p.Refresh();
    IntPtr id = p.MainWindowHandle;
    Console.Write(id);
    Load.SetWindowPos(id, (IntPtr)HWND_TOP, 0, 0, 0, 0, 0x0040);
}

无效的窗口句柄

这里有一个很好的例子可以帮助你。还要记住,这些窗口是根据它们在屏幕上的外观排序的。最上面的窗口获得最高级别,并且是Z顺序中的第一个窗口。