本帖最后由 zhanglei1371 于 2024-2-25 10:00 编辑
各位好!
我现在能用api将一个第三方Exe嵌入窗体的panel1里,但是当我拖动窗体时,里面的嵌入窗体却不能随之移动,不知该怎样修改,能实现:
当我拖动当前窗体时,panel1里的符号窗体也能动态的随之改变?
另外还有个问题,就是打开第三方应用时,我发现使用ZLhwnd = process.Handle;获取到的句柄并不是真正的窗体句柄,而Findwindow找到的才是。这两个为何不同?
谢谢!!!
private void button1_Click(object sender, EventArgs e)
{
Process process = new Process();
process.StartInfo.FileName = Application.StartupPath + @"\QQPYFace.exe";
process.StartInfo.UseShellExecute = true;
process.Start();
process.WaitForInputIdle();
Thread.Sleep(300);
// 获取窗口标题
ZLhwnd = process.Handle;
ZLhwnd = FindWindow("Tencent_QQPYFace_CLASS_F779A4FF-2139-4A44-918D-2B8BF1AAD80", "符号输入器");
}
private void button2_Click(object sender, EventArgs e)
{
//嵌入到Panel1中;
SetParent(ZLhwnd,panel1.Handle);
t
private void 窗体内嵌test_Move(object sender, EventArgs e)
{
//窗体移动事件;设置第三方exe窗口的left和top为panel1的:
MoveWindow(ZLhwnd, panel1.Left, panel1.Top, panel1.Width, panel1.Height, 1);
}
【注意】这个第三方exe是比较特殊的一个(非常不一般,不要用普通简单的逻辑去应对),普通的记事本是没有任何问题的,所以ChatGPT的答案就不要粘贴了,可以自己下载附件测试下!
附件:
https://wwi.lanzoup.com/iVoyr1payqah |