1

我目前正在开发一个表单应用程序,它可以覆盖另一个程序(Skype)。现在,我正在使用 TopMost = true,但这是一个非常糟糕的解决方案。

我有 Skype 窗口的句柄,以及我自己的窗口的句柄。如何使我的程序满足以下三个语句:
1. 如果 Skype 最小化,它必须消失
2. 它必须出现在 Skype 上方
3. 它必须出现在 Skype 上方的任何其他应用程序后面

上面和后面与 z 顺序有关。

我目前正在使用 SetWindowLong 函数,但无法获得所需的结果。

[DllImport("user32.dll")]
public static extern int SetWindowLong(HandleRef hWnd, int nIndex, HandleRef dwNewLong);

SetWindowLong(
    new HandleRef(child, child.Handle),
     -8, // GWL_HWNDPARENT
     new HandleRef(owner, owner.Handle));

对于 #1,我的应用程序不断检查 Skype 的尺寸是否发生了变化,因此我也可以简单地检查窗口是否不再可见。但是,我对#2 和#3 完全不知所措。

提前致谢。克洛尔

4

0 回答 0