Onde estão armazenadas as informações sobre a posição de uma janela?

9

Onde estão armazenadas as informações sobre a posição de uma janela?

Um exemplo: inicio notepad.exee ele não é minimizado nem maximizado, mas apenas uma janela de tamanho médio no centro da tela. Se eu fechá-lo e iniciá-lo novamente, ele está nas mesmas coordenadas XY. Mas se eu fechá-lo enquanto estiver na parte inferior da tela, ele será iniciado novamente na parte inferior (ao contrário do meio) da tela.

Se eu quisesse alterar manualmente as posições XY de uma janela para abrir em um local fora do padrão, o que eu precisaria editar?

Provavelmente o registro, mas onde?

BenjiWiebe
fonte

Respostas:

8

Cada programa armazena informações sobre suas janelas à sua maneira. Para o Bloco de notas, encontrei o seguinte no meu registro do Windows XP.

No registro, vá para a seguinte pasta

HKEY_CURRENT_USER\Software\Microsoft\Notepad

modifique os seguintes valores

iWindowPosX
iWindowPosY
iWindowPosDX
iWindowPosDY

X e Y são as coordenadas do canto superior esquerdo da janela. DX e DY são a largura e a altura da janela.

Outros programas podem salvar as informações de posição da janela no registro ou em outros arquivos de configurações.

Bavi_H
fonte
Então, cada programa tem que lidar com seus próprios dados de posicionamento?
precisa saber é o seguinte
Eu esperava que o Windows lidasse com isso. Mas eu tenho uma onda cerebral. Eu compilei um programa Win32 GUI muito básico e procurei o código para localizar o código de configuração da posição. Tudo o que encontrei foi uma linha que dizia ao Windows para posicionar o programa. O Windows posicionou o programa como qualquer outro console - canto superior esquerdo, um pouco mais baixo e para a direita e depois novamente para baixo, até finalmente redefini-lo para o canto superior esquerdo. Demo: digite start10 vezes test.bate execute-o.
precisa saber é o seguinte
Acabei de ver que o iWindowPosX estava definido como fffffffd (4294967293) no meu caso. Alguma idéia de como esse número maciço funciona?
Karan
@BenjiWiebe São coisas diferentes: 1. Se um programa lembra a posição de uma janela para colocá-la no mesmo lugar da próxima vez, então o programa escolhe como e onde salva as coordenadas e o tamanho da janela. Pode salvar os valores no registro, em um arquivo de texto ou de outra maneira. 2. Se você estiver escrevendo um programa que cria uma janela, poderá especificar a posição e o tamanho da janela ao criar a janela. Acho que se você não os especificar, o Windows escolherá um canal padrão como você descreve. Talvez você possa obter orientações mais específicas em um fórum de programação.
Bavi_H 12/01
1
@ Karan Esse número é -3 quando os bits são tratados como um valor assinado. Resumidamente: imagine um odômetro com oito cilindros, e cada cilindro tenha os dígitos 0 a 9 e depois A a F nele. Se você começar em 00000000 e clicar no odômetro três vezes, você terminará em FFFFFFFD. Para mais detalhes: aprenda sobre o binário, o hexadecimal e o complemento de dois.
Bavi_H 12/01