2012-02-05 2 views
1

Я пишу приложение на C#, которому необходимо прикрепить один из своих окон к окну, принадлежащему другому процессу. Я попытался использовать функцию SetParent из окна api, но он, похоже, не работает. Есть какой-либо способ сделать это?Приложить окно к внешнему процессу

[DllImport("user32.dll", SetLastError = true)] 
    private static extern int SetParent(int hWndChild, int hWndNewParent); 

    private void AttachWindow(int newParent) { 
    SetParent(this.Handle, newParent); 
    } 

ответ

2

Во-первых, ваша декларация P/Invoke неверна. Ручки представлены IntPtr, не Int32:

[DllImport("user32.dll", SetLastError = true)] 
private static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent); 

Теперь, возможно, вы должны избегать «прикрепление» окно в другой процесс. См. this SO thread.