Como reconhecer quando o número, a posição ou a resolução dos monitores foi alterada? [duplicado]

Esta questão já tem uma resposta aqui:

Como detectar a mudança de resolução de tela no Delphi? 1 resposta

Estou construindo algo que precisa detectar quando as coisas mudam com a configuração do monitor. Isso inclui o Monitor adicionado / removido, a posição do monitor movida (em comparação com a tela principal) ou quando a resolução do monitor foi alterada. A maneira mais ideal seria pegar algumas mensagens do Windows, se houver, que são acionadas quando tais eventos ocorrem. Esta informação será usada para manter um registro em tempo real dos tamanhos / posições do monitor a qualquer momento. Por exemplo, quando a resolução de um monitor é aumentada, meu aplicativo detecta isso imediatamente e faz seus próprios ajustes para acomodar a alteração. Como eu pego esses eventos?

Eu também estou tentando evitar o uso de VCL (comoVcl.Forms.Screen.MonitorCount) é por isso que eu prefiro pegar uma mensagem do Windows.

questionAnswers(1)

yourAnswerToTheQuestion