Получить дескриптор окна вызывающего окна - PullRequest
1 голос
/ 09 марта 2010

есть программа, которая вызывает метод в моей C # DLL. В этом методе DLL мне нужно иметь дескриптор окна программы / окна, которое вызвало мою DLL.

как получить этот "дескриптор вызывающего окна"?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 09 марта 2010

Возвращает дескриптор главного окна.

System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle

Как я знаю, нет никакого способа получить конкретное окно, потому что оно не более чем объект формы. Но у класса Form есть свойство Handle. Вы можете передать это как аргумент вызовам метода dll.

2 голосов
/ 09 марта 2010

Вы не можете: окна не вызывают методы, код вызывает методы.

В идеале вы должны добавить параметр дескриптора окна в ваш метод. Если это абсолютно невозможно, вы можете использовать, скажем, функцию GetActiveWindow API, чтобы активировать окно в текущем потоке. Это не гарантировано, чтобы работать; возможно нет открытых окон.

Зачем вам нужна ручка окна?

...