Existe uma maneira de esconder programaticamente um aplicativo de carbono no OSX?
-
19-08-2019 - |
Pergunta
Eu tenho um aplicativo de carbono C ++ e eu gostaria de programaticamente fazer o equivalente a Command-H (para esconder a aplicação) que está disponível no menu do aplicativo para o meu aplicativo. I têm explorado a API de carbono para TransitionWindow e HideWindow e enquanto estes podem esconder minha janela, eles não fazem o equivalente a Command-H. Olhei para a referência AppleEvent no improviso que eu precisava para criar um AppleEvent mas eu não vi um para esconder aplicação. Quaisquer pensamentos?
Solução
Desculpe a responder a minha própria pergunta, mas a API ShowHideProcess () parece estar a fazer o que eu quero. Se há melhores soluções que eu gostaria de ouvi-los.
Outras dicas
Apenas uma nota:. Esconder uma janela é muito diferente para esconder uma aplicação
Você também pode enviar a ( 'esconder') Evento comando kHICommandHide do Gestor de Eventos de carbono (que é o que esse item de menu faz, e que apela ShowHideProcess () quando processados) se preferir, por exemplo, se quiser esta ação a ser materializado por um evento.
Eu olhei para a referência AppleEvent no improviso que eu precisava para criar um AppleEvent mas eu não vi um para esconder aplicação. Quaisquer pensamentos?
Não sou especialista, mas você pode apenas usar AppleEvent para definir a propriedade visible
de um processo para false
- pelo menos ele funciona com um AppleScript
tell application "System Events"
set visible of process "xyz" to false
end tell
Por outro lado, a sua API parece ser a maneira mais direta e o código acima provavelmente só usa-lo também.