Pergunta

Sou um desenvolvedor de cacau novato e estou desenvolvendo meu primeiro aplicativo. Quero ler um identificador exclusivo de qualquer janela de qualquer aplicativo - seja cacau ou carbono. Os aplicativos de cacau disponibilizam seus IDs de janela para o AppleScript (embora eu tenha certeza de que existe uma maneira muito melhor de fazer isso através de uma rota C adequada), mas estou tentando acessar os IDs de janelas a partir de documentos nos aplicativos da Adobe. Isso parece ser muito mais complicado. Tudo o que pareço encontrar nas bibliotecas de referência é HiWindowgetCGWindowid:

"Esta função retorna o ID da janela atribuído pelo servidor da janela quando uma janela é criada. O ID da janela geralmente não é útil com qualquer outra função de carbono, mas pode ser usada com outras funções do Mac OS X que requerem um ID da janela, como funções em Opengl. "

Isso pode ser usado para obter o ID do meu programa? Ou é apenas uma função que pode ser usada em um aplicativo?

Se alguém pudesse me apontar na direção certa, eu ficaria eternamente agradecido.

Foi útil?

Solução

A função HIWindowGetCGWindowID() só pode devolver um CGWindowID para uma das janelas do seu aplicativo, já que um WindowRef De outro programa não será válido no seu.

A função CGWindowListCopyWindowInfo() a partir de Cgwindow.h Retornará uma variedade de dicionários, um para cada janela que corresponde aos critérios que você define, incluindo outros em outros aplicativos. Ele permite apenas filtrar pelo Windows acima de uma determinada janela, janelas abaixo de uma determinada janela e janelas "na tela", mas o dicionário retornado inclui um ID de processo para o aplicativo proprietário que você pode usar para combinar a janela para o aplicativo. Em cada dicionário retornado o kCGWindowNumber a chave apontará para o ID da janela como um CFNumber. Há também um CGWindowListCreate() função que retorna apenas uma matriz de CGWindowIDs. Basicamente não há documentação para essas funções além do Cgwindow.h cabeçalho e o Filho de Grab Código de amostra. Além disso, são apenas 10,5.

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