gpt4 book ai didi

c# - 读取进程的 MainWindowHandle

转载 作者:太空宇宙 更新时间:2023-11-03 14:15:52 27 4
gpt4 key购买 nike

我尝试阅读 MainWindowHanlde For Acrobat Reader 10 Process 以便我可以设置 SetParent API我试过了

private Process pDocked;
private IntPtr hWndDocked;
pDocked = Process.Start(path, PDFPath);
while (hWndDocked == IntPtr.Zero)
{
pDocked.WaitForInputIdle(1000);
pDocked.Refresh();
if (pDocked.HasExited)
{
return;
}
hWndDocked = pDocked.MainWindowHandle;
}

结果是 hWndDocked = 0即使我在 acrobat reader 9 上试过这个,我得到了 MainWindowHandle,但它在 acrobat reader 10 上不起作用

请帮忙谢谢

最佳答案

我有同样的问题,发现当以下属性为真时,没有 MainWindowHandle,如果“主窗体”有子窗口,那么进程的 MainWindowHandle 将是子窗口句柄而不是预期的主窗口句柄 window 。诡异的!!!希望我能理解为什么。但是一旦我找到这个,我就用另一种方式解决了我的问题(在我的例子中,我真的不需要 MainWindowHandle)!

当出现以下情况时:

public frmMain()
{
InitializeComponent();
this.ShowInTaskbar = false;
this.ShowIcon = false;
}

没有 MainWindowHandle (=0)!!

如果您创建子窗口,在这种情况下,进程的 MainWindowHandle 将是 frmLogon 的句柄:

private void frmMain_Load(object sender, EventArgs e)
{
frmLogon frm = new frmLogon();
frm.Show();
}

关闭进程的frmLogon和MainWindowHandle回零(=0)!!

希望这些信息对您有所帮助!

关于c# - 读取进程的 MainWindowHandle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596244/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com