Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Her konsolun giriş olayı kayıtları kuyruğu içeren bir giriş arabelleği vardır. Konsolun penceresinde klavye odağı olduğunda, konsol her giriş olayını (tek tuş vuruşu, fare hareketi veya fare düğmesi tıklaması gibi) konsolun giriş arabelleğine yerleştirdiği bir giriş kaydı olarak biçimlendirır.
Uygulamalar, üst düzey konsol G/Ç işlevlerini kullanarak veya doğrudan alt düzey konsol giriş işlevlerini kullanarak konsolun giriş arabelleğine dolaylı olarak erişebilir. Üst düzey giriş işlevleri, giriş arabelleğindeki verileri filtreleyip işler ve yalnızca bir giriş karakteri akışı döndürür. Alt düzey giriş işlevleri, uygulamaların giriş kayıtlarını doğrudan konsolun giriş arabelleğinden okumasına veya giriş kayıtlarını giriş arabelleğine yerleştirmesine olanak tanır. Konsolun giriş arabelleğine tanıtıcı açmak için CreateFile işlevine yapılan bir çağrıda CONIN$ değerini belirtin.
Giriş kaydı, gerçekleşen olayın türü (klavye, fare, pencere yeniden boyutlandırma, odak veya menü olayı) ve olayla ilgili belirli ayrıntıları içeren bir yapıdır. INPUT_RECORD yapısındaki EventType üyesi, kayıtta hangi olay türünün yer aldığı gösterir.
Odak ve menü olayları, sistem tarafından iç kullanım için bir konsolun giriş arabelleğine yerleştirilir ve uygulamalar tarafından yoksayılmalıdır.
Klavye Olayları
Herhangi bir tuşa basıldığında veya yayınlandığında klavye olayları oluşturulur; bu, denetim anahtarlarını içerir. Ancak, ALT tuşunun başka bir karakterle birleştirilmeden basıldığında ve serbest bırakıldığında sistem için özel bir anlamı vardır ve uygulamaya geçirilmemiştir. Ayrıca, giriş tutamacı işlenmiş moddaysa CTRL+C tuş bileşimi geçirilir.
Giriş olayı bir tuş vuruşuysa, INPUT_RECORD'dakiOlay üyesi aşağıdaki bilgileri içeren KEY_EVENT_RECORD bir yapıdır:
- Tuşa basıldığını veya serbest bırakıldığını gösteren Boole değeri.
- Bir anahtar basılı tutulduğunda birden büyük olabilecek yineleme sayısı.
- Verilen anahtarı cihazdan bağımsız bir şekilde tanımlayan sanal anahtar kodu.
- Klavye donanımı tarafından oluşturulan cihaza bağımlı değeri gösteren sanal tarama kodu.
- Çevrilmiş Unicode™ veya ANSI karakteri.
- Denetim tuşlarının (ALT, CTRL, SHIFT, NUM LOCK, SCROLL LOCK ve CAPS LOCK tuşları) durumunu ve gelişmiş bir tuşa basılıp basılmadığını gösteren bir bayrak değişkeni. IBM® 101 tuşlu ve 102 tuşlu klavyeler için geliştirilmiş tuşlar, sayısal tuş takımının solundaki kümelerdeki INS, DEL, HOME, END, PAGE UP, PAGE DOWN ve ok tuşları ile sayısal tuş takımındaki bölme (/) ve ENTER tuşlarıdır.
Mouse Olayları
Kullanıcı fareyi her hareket ettikçe veya fare düğmelerinden birini bastığında veya serbest bıraktığında fare olayları oluşturulur. Fare olayları yalnızca aşağıdaki koşulların karşılanması durumunda giriş arabelleğine yerleştirilir:
- Konsol giriş modu ENABLE_MOUSE_INPUT (varsayılan mod) olarak ayarlanır.
- Konsol penceresinde klavye odağı bulunur.
- Fare işaretçisi konsolun penceresinin kenarlıkları içindedir.
Giriş olayı bir fare olayıysa, INPUT_RECORD'dakiEvent üyesi aşağıdaki bilgileri içeren MOUSE_EVENT_RECORD bir yapıdır:
- Konsol ekranı arabelleğinin koordinat sistemindeki karakter-hücre satırı ve sütunu bakımından fare işaretçisinin koordinatları.
- Fare düğmelerinin durumunu gösteren bir bayrak değişkeni.
- Denetim tuşlarının durumunu gösteren (ALT, CTRL, SHIFT, NUM LOCK, SCROLL LOCK ve CAPS LOCK) ve gelişmiş bir tuşa basılıp basılmadığını gösteren bir bayrak değişkeni. IBM 101 tuşlu ve 102 tuşlu klavyeler için geliştirilmiş tuşlar, sayısal tuş takımının solundaki kümelerdeki INS, DEL, HOME, END, PAGE UP, PAGE DOWN ve ok tuşları ile sayısal tuş takımındaki bölme (/) ve ENTER tuşlarıdır.
- Olayın normal bir düğmeye basma veya düğme bırakma olayı mı, fare hareketi olayı mı yoksa çift tıklama olayının ikinci tıklaması mı olduğunu gösteren bayrak değişkeni.
Uyarı
Fare konumu koordinatları konsol penceresi değil konsol ekranı arabelleği açısındandır. Ekran arabelleği pencereye göre kaydırılmış olabilir, bu nedenle pencerenin sol üst köşesi konsol ekranı arabelleğinin (0,0) koordinatı olmayabilir. Farenin pencerenin koordinat sistemine göre koordinatlarını belirlemek için, pencere başlangıç koordinatlarını fare konumu koordinatlarından çıkarın. Pencere çıkış noktası koordinatlarını belirlemek için GetConsoleScreenBufferInfo işlevini kullanın.
MOUSE_EVENT_RECORD yapısının dwButtonState üyesinin her fare düğmesine karşılık gelen bir kısmı vardır. Düğme devre dışıysa bit 1, düğme çalışır durumdaysa 0 olur. MOUSE_EVENT_RECORD dwEventFlags üyesi için 0 değeri ve düğmenin bitinde 1 ile 0 arasında bir değişiklik algılanır. GetNumberOfConsoleMouseButtons işlevi, faredeki düğme sayısını alır.
olayları Buffer-Resizing
Konsol penceresinin menüsü, kullanıcının etkin ekran arabelleğinin boyutunu değiştirmesine olanak tanır; bu değişiklik bir arabellek yeniden boyutlandırma olayı oluşturur. Konsolun giriş modu ENABLE_WINDOW_INPUT olarak ayarlanırsa (varsayılan mod devre dışı bırakılır) arabellek yeniden boyutlandırma olayları giriş arabelleğine yerleştirilir.
Giriş olayı bir arabellek yeniden boyutlandırma olayıysa ,INPUT_RECORD'nin Olay üyesi, konsol ekranı arabelleğinin karakter hücresi sütunları ve satırlarıyla ifade edilen yeni boyutunu içeren WINDOW_BUFFER_SIZE_RECORD bir yapıdır.
Kullanıcı konsol ekranı arabelleğinin boyutunu küçültürse, arabelleğin atılan bölümündeki tüm veriler kaybolur.
SetConsoleScreenBufferSize işlevine yapılan uygulama çağrıları sonucunda konsol ekranı arabellek boyutundaki değişiklikler arabellek yeniden boyutlandırma olayları olarak oluşturulmaz.