我试图阅读Acrobat Reader 10进程的MainWindowHanlde,以便可以设置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上却不起作用
请帮忙
谢谢
最佳答案
我遇到了同样的问题,发现当以下属性为true时,没有MainWindowHandle,并且如果“主窗体”具有子窗口,则进程的MainWindowHandle将是子窗口句柄,而不是预期的主窗口。奇怪的!!!希望我能明白为什么。但是一旦找到了这个,我就用另一种方式解决了我的问题(就我而言,我真的不需要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)!
希望此信息对您有所帮助!