Pergunta

existe um software que chama um método no meu C # dll. Neste método dll eu preciso ter o identificador de janela do programa / janela que chamou minha dll.

como obter este "chamado identificador de janela"?

Obrigado!

Foi útil?

Solução

Esta pode retornar a janela principal do punho.

System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle

Como eu sei que não há nenhuma maneira de obter uma janela de concreto porque não mais é do que o objeto Form. Mas classe de formulário tem uma Handle propriedade. Você pode passá-lo como um argumento para chamadas de método dll.

Outras dicas

Você não pode:. Janelas não chamar métodos, o código chama métodos

Você deve idealmente adicionar um parâmetro identificador de janela para o seu método. Se isso é absolutamente impossível, você poderia usar, por exemplo, a função GetActiveWindow API para obter a janela ativa no segmento atual. Isto não é garantido que funcione; talvez não há janelas abertas.

O que você precisa o identificador janela para?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top