Bir pencerenin konumu hakkında bilgi nerede saklanır?


9

Bir pencerenin konumu hakkında bilgi nerede saklanır?

Bir örnek: Başladım notepad.exeve ne küçültülmüş ne de büyütülmüş olarak başlıyor, ancak ekranın ortasında orta boy bir pencere var. Kapatıp yeniden başlatırsam, aynı XY koordinatlarındadır. Ama sonra ekranın altındayken kapatırsam, ekranın alt kısmında (ortadaki aksine) tekrar başlayacaktır.

Bir pencerenin XY konumlarını standart olmayan bir konumda açılacak şekilde manuel olarak değiştirmek isteseydim, neyi düzenlemem gerekir?

Muhtemelen kayıt defteri, ama nerede?

Yanıtlar:


8

Her program pencereleriyle ilgili bilgileri kendi yolunda saklar. Not Defteri için, Windows XP kayıt defterinde aşağıdakileri buldum.

Kayıt defterinde aşağıdaki klasöre gidin

HKEY_CURRENT_USER\Software\Microsoft\Notepad

sonra aşağıdaki değerleri değiştirin

iWindowPosX
iWindowPosY
iWindowPosDX
iWindowPosDY

X ve Y, pencerenin sol üst köşesinin koordinatlarıdır. DX ve DY pencerenin genişliği ve yüksekliğidir.

Diğer programlar pencere konumu bilgilerini kayıt defterine veya diğer ayar dosyalarına kaydedebilir.


Yani her program kendi konumlandırma verilerini işlemeli ??
BenjiWiebe

Windows'un halletmesini umuyordum. Ama bir beyin dalgasım var. Çok temel bir Win32 GUI programı derledim ve konum ayar kodunu bulmak için kodu baktı. Bulduğum tek şey, Windows'un programı konumlandırmasını söyleyen bir satırdı. Windows daha sonra programı herhangi bir konsol programı gibi konumlandırdı - sol üst köşeye, sonra biraz daha alçak ve sağa ve daha sonra tekrar, en sonunda sol üst köşeye sıfırlanana kadar. Demo: start10 kez yazın test.batve çalıştırın.
BenjiWiebe

Ben sadece iWindowPosX benim durumda fffffffd (4294967293) olarak ayarlandığını gördüm. Bu devasa sayının nasıl çalıştığı hakkında bir fikrin var mı?
Karan

@BenjiWiebe Bunlar farklı şeylerdir: 1. Bir program bir dahaki sefere aynı yere yerleştirebilmesi için bir pencerenin konumunu hatırlarsa, program pencere koordinatlarını ve boyutunu nasıl ve nereye kaydedeceğini seçer. Değerleri kayıt defterine, metin dosyasına veya başka bir şekilde kaydedebilir. 2. Pencere yapan bir program yazıyorsanız, pencereyi oluştururken pencerenin konumunu ve boyutunu belirtebilirsiniz. Onları belirtmezseniz, Windows sizin tanımladığınız gibi varsayılan bir yerleşim seçecektir. Belki de bir programlama forumunda daha spesifik rehberlik alabilirsiniz.
Bavi_H

1
@Karan Bitler işaretli bir değer olarak değerlendirildiğinde bu sayı -3 olur. Kısaca: sekiz makaralı bir kilometre sayacı düşünün ve her makarada 0 ila 9 arası rakamlar, sonra A ila F arasındaki rakamlar bulunur. 00000000'den başlarsanız, kilometre sayacını üç kez geriye doğru tıklarsanız, sonunda FFFFFFFD elde edersiniz. Daha fazla ayrıntı için: ikili, onaltılı ve ikinin tamamlayıcısı hakkında bilgi edinin.
Bavi_H
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.