2

アプリケーションが親として使用されている場合、アプリケーションをフォームからどのようにフック解除しますか?

[DllImport("user32.dll")]
public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

[DllImport("coredll.dll", SetLastError = true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

[DllImport("coredll.dll", SetLastError = true)]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

SetParent(setter, this.panel1.Handle);

フックを外すために、 SetParent(setter, setter); を試しました。運がない。

4

2 に答える 2

1

私はこれが遅いことを知っていますが、ゼロを渡して親からフックを外すことができました:

SetParent(process.MainWindowHandle, IntPtr.Zero);

これにより、デスクトップ ウィンドウが新しい親として設定されます。

于 2016-05-17T14:12:33.573 に答える
0

SetParent は、前の親ウィンドウ ハンドルを返します。ウィンドウを「フック解除」するには、最初に取得したハンドルで SetParent を呼び出す必要があります。

于 2013-03-04T06:32:34.117 に答える