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.
Bildirim alanı, görev çubuğunun bildirimler ve durum için geçici bir kaynak sağlayan bir bölümüdür. Ayrıca masaüstünde pil düzeyi, ses denetimi ve ağ durumu gibi varlığı olmayan sistem ve program özelliklerinin simgelerini görüntülemek için de kullanılabilir. Bildirim alanı, geçmişe dönük olarak sistem tepsisi veya durum alanı olarak biliniyordu.
Bu konu aşağıdaki bölümleri içerir:
- Bildirim ve Bildirim Alanı Yönergeleri
- Bildirim Oluşturma ve Görüntüleme
- Bildirim Simgesi Ekle
- NOTIFYICONDATA Sürümünü Tanımlama
- Bildirim Görünümü ve İçeriğini Tanımlama
- Kullanıcı Durumu Denetleme
- Bildirim Görüntüleme
- Simge Kaldırma
- SDK Örneği
- İlgili konular
Bildirim ve Bildirim Alanı Yönergeleri
Bildirimlerin ve bildirim alanının kullanımıyla ilgili en iyi yöntemler için Windows Kullanıcı Deneyimi Etkileşim YönergeleriBildirimleri ve Bildirim Alanı bölümlerine bakın. Amaç, rahatsız edici veya dikkat dağıtıcı olmadan uygun bildirimleri kullanarak kullanıcı avantajı sağlamaktır.
Bildirim alanı, hemen üzerinde işlem yapılması gereken kritik bilgiler için değildir. Ayrıca hızlı program veya komut erişimi için de tasarlanmamıştır. Windows 7'de bu işlevselliğin büyük bir kısmı en iyi şekilde uygulamanın görev çubuğu düğmesiyle gerçekleştirilir.
Windows 7, kullanıcının seçtiği takdirde bir uygulamadan gelen tüm bildirimleri gizlemesine olanak tanır, bu nedenle düşünceli bildirim tasarımı ve kullanımı, uygulamanızın bunları görüntülemeye devam etmesine izin vermek için kullanıcıyı eğimli kılar. Bildirimler bir kesintidir; buna değer olduklarından emin olun.
Windows 7, "sessiz zaman" kavramını tanıtır. Sessiz zaman, yeni bir kullanıcı hesabında ilk kez veya bir işletim sistemi yükseltmesinden veya temiz yüklemeden sonra ilk kez oturum açtığından sonraki ilk saat olarak tanımlanır. Bu süre, kullanıcının bildirimlerin dikkatini dağıtmadan yeni ortamı keşfetmesine ve tanımasına izin vermek için ayrılmıştır. Bu süre boyunca çoğu bildirim gönderilmemeli veya gösterilmemelidir. Özel durumlar, kullanıcının bir USB cihazı takması veya belgeyi yazdırması gibi bir kullanıcı eylemine yanıt olarak görmeyi bekleyeceği geri bildirimleri içerir. Sessiz zaman ile ilgili API özellikleri bu konunun ilerleyen bölümlerinde ele alınmıştır.
Bildirim Oluşturma ve Görüntüleme
Bu konudaki kalan bölümlerde, uygulamanızdan kullanıcıya bir bildirim görüntülemek için izleyebileceğiniz temel yordam özetlenmektedir.
- Bildirim Simgesi Ekle
- NOTIFYICONDATA Sürümünü Tanımlama
- Bildirim Görünümü ve İçeriğini Tanımlama
- Kullanıcı Durumu Denetleme
- Bildirim Görüntüleme
- Simge Kaldırma
Bildirim Simgesi Ekle
Bildirim görüntülemek için bildirim alanında bir simgeniz olmalıdır. Microsoft Communicator veya pil düzeyi gibi bazı durumlarda bu simge zaten mevcut olacaktır. Ancak diğer birçok durumda bildirim alanına yalnızca bildirimi göstermek için gerekli olduğu sürece bir simge eklersiniz. Her iki durumda da bu, Shell_NotifyIcon işlevi kullanılarak gerçekleştirilir. Shell_NotifyIcon bildirim alanına bir simge eklemenize, değiştirmenize veya silmenize olanak tanır.
üç simge içeren ![]()
Windows 7'de bildirim alanına bir simge eklendiğinde, varsayılan olarak bildirim alanının taşma bölümüne eklenir. Bu alan, etkin olan ancak bildirim alanında görünmeyen bildirim alanı simgeleri içerir. Belirli durumlarda sistem bir simgeyi kısa önizleme olarak (bir dakikanın altında) bildirim alanına geçici olarak yükseltse de, yalnızca kullanıcı bir simgeyi taşma alanından bildirim alanına yükseltebilir.
Not
Kullanıcının bildirim alanında görmek istediği simgelerin son sözlerine sahip olması gerekir. Bildirim alanına geçici olmayan bir simge yüklemeden önce kullanıcıdan izin istenmesi gerekir. Ayrıca, simgeyi bildirim alanından kaldırma seçeneği (normalde kısayol menüsü olsa da) verilmelidir.
Shell_NotifyIcon çağrısında gönderilen NOTIFYICONDATA yapısı hem bildirim alanı simgesini hem de bildirimin kendisini belirten bilgiler içerir. Bildirim alanı simgesine özgü olan ve NOTIFYICONDATAaracılığıyla ayarlanabilen öğeler aşağıdadır.
- Simgenin alındığı kaynak.
- Simge için benzersiz bir tanımlayıcı.
- Simgenin araç ipucunun stili.
- Simgenin bildirim alanındaki durumu (gizli, paylaşılan veya her ikisi de).
- Simgeyle ilişkilendirilmiş bir uygulama penceresinin tutamacı.
- Simgenin simgenin sınırlayıcı dikdörtgeni içinde gerçekleşen olayları ve ilişkili uygulama penceresiyle balon bildirimini iletmesini sağlayan bir geri çağırma iletisi tanımlayıcısı. Simgenin sınırlayıcı dikdörtgeni Shell_NotifyIconGetRectaracılığıyla alınabilir.
Bildirim alanındaki her simge iki şekilde tanımlanabilir:
- Simgenin kayıt defterinde bildirildiği GUID. Bu, Windows 7 ve sonraki sürümlerde tercih edilen yöntemdir.
- Bildirim alanı simgesiyle ilişkilendirilmiş bir pencerenin tutamacı ve uygulama tanımlı simge tanımlayıcısı. Bu yöntem Windows Vista ve önceki sürümlerde kullanılır.
Bildirim alanındaki simgelerin araç ipucu olabilir. Araç ipucu standart bir araç ipucu (tercih edilen) veya uygulama tarafından çizilmiş, açılır bir kullanıcı arabirimi olabilir. Araç ipucu gerekli olmasa da önerilir.
Bildirim alanı simgeleri yüksek DPI'ye duyarlı olmalıdır. Bir uygulama, kaynak dosyasında hem 16x16 piksel simgesi hem de 32x32 simgesi sağlamalı ve ardından doğru simgenin uygun şekilde yüklendiğinden ve ölçeklendirildiğinden emin olmak için LoadIconMetric kullanmalıdır.
Bildirim alanı simgesinden sorumlu uygulama, bu simge için fare tıklamasını işlemelidir. Kullanıcı simgeye sağ tıkladığında normal bir kısayol menüsü açılır. Ancak, sol fare düğmesiyle tek tıklamanın sonucu simgenin işlevine göre değişir. Kullanıcının bu içeriğe en uygun biçimde görmeyi bekleyeceğini (açılan pencere, iletişim kutusu veya program penceresinin kendisi) görüntülemelidir. Örneğin, durum simgesinin durum metnini veya ses denetimi kaydırıcısını gösterebilir.
Tıklamayla sonuçlanacak bir açılır pencerenin veya iletişim kutusunun yerleşimi, bildirim alanındaki tıklamanın koordinatına yakın bir yere yerleştirilmelidir. Konumunu belirlemek için CalculatePopupWindowPositionkullanın.
Simge bildirim alanına bildirim gösterilmeden yalnızca NOTIFYICONDATA simgeye özgü üyeleri tanımlanarak (yukarıda anlatılmaktadır) ve burada gösterildiği gibi Shell_NotifyIcon çağrılarak eklenebilir:
NOTIFYICONDATA nid = {};
// Do NOT set the NIF_INFO flag.
...
Shell_NotifyIcon(NIM_ADD, &nid);
Ayrıca simgeyi bildirim alanına ekleyebilir ve Shell_NotifyIconiçin tek bir aramada bir bildirim görüntüleyebilirsiniz. Bunu yapmak için bu konudaki yönergelerle devam edin.
NOTIFYICONDATA Sürümünü Tanımlama
Windows ilerledikçe, NOTIFYICONDATA yapısı daha fazla işlev tanımlamak üzere daha fazla üye içerecek şekilde genişletilmiştir. Sabitler, geriye dönük uyumluluk sağlamak için bildirim alanı simgenizle NOTIFYICONDATA hangi sürümünün kullanılacağını bildirmek için kullanılır. Aksini yapmak için zorlayıcı bir neden yoksa, Windows Vista'da sunulan NOTIFYICON_VERSION_4 sürümünü kullanmanız kesinlikle önerilir. Bu sürüm, kayıtlı BIR GUID olsa da bildirim alanı simgesini tanımlamak için tercih edilen özellik, üstün bir geri çağırma mekanizması ve daha iyi erişilebilirlik dahil olmak üzere tüm kullanılabilir işlevleri sağlar.
Sürümü aşağıdaki çağrılar aracılığıyla ayarlayın:
NOTIFYICONDATA nid = {};
...
nid.uVersion = NOTIFYICON_VERSION_4;
// Add the icon
Shell_NotifyIcon(NIM_ADD, &nid);
// Set the version
Shell_NotifyIcon(NIM_SETVERSION, &nid);
bu Shell_NotifyIcon çağrısının bir bildirim görüntülemediğini unutmayın.
Bildirim Görünümünü ve İçeriğini Tanımlama
Bildirim, özel bir balon araç ipucu denetimi türüdür. Başlık, gövde metni ve simge içerir. Pencere gibi, sağ üst köşesinde Kapat düğmesi vardır. Ayrıca Denetim Masası'nda Bildirim Alanı Simgeleri öğesini açan Seçenekler düğmesi de bulunur. Bu düğme kullanıcının simgeyi göstermesini veya gizlemesini ya da yalnızca simge olmadan bildirimleri göstermesini sağlar.
Shell_NotifyIcon çağrısında gönderilen NOTIFYICONDATA yapısı hem bildirim alanı simgesini hem de bildirim balonunu belirten bilgiler içerir. NOTIFYICONDATAaracılığıyla ayarlanabilen bildirime özgü öğeler aşağıdadır.
- Bildirim türü tarafından belirtilen bildirim balonunda görüntülenecek simge. Simgenin boyutu ve özel simgeler belirtilebilir.
- Bildirim başlığı. Bu başlık İngilizce (yerelleştirmeye uyum sağlamak için) en fazla 48 karakter uzunluğunda olmalıdır. Başlık bildirimin ilk satırıdır ve yazı tipi boyutu, rengi ve kalınlığı kullanılarak birbirinden ayrılır.
- Bildirimin gövdesinde kullanılacak metin. Bu metin en fazla 200 karakter İngilizce olmalıdır (yerelleştirmeye uyum sağlamak için).
- Bildirimin hemen görüntülenememesi durumunda atılıp atılmayacağı.
- Bildirim için zaman aşımı. Bu ayar, Windows Vista ve sonraki sistemlerde sistem genelinde erişilebilirlik zaman aşımı ayarına göre yoksayılır.
- Bildirimin sessiz saate uyup uyulmayacağı NIIF_RESPECT_QUIET_TIME bayrağı üzerinden ayarlanır.
Not
IUserNotification ve IUserNotification2 arabirimleri, Shell_NotifyIconiçin Bileşen Nesne Modeli (COM) sarmalayıcılarıdır. Ancak şu anda, bildirim alanı simgesini tanımlamak için GUID kullanımı dahil olmak üzere doğrudan Shell_NotifyIcon aracılığıyla sağlanan tam NOTIFYICON_VERSION_4 işlevselliğini sağlamaz.
Kullanıcı Durumunu Denetleme
Sistem SHQueryUserNotificationState işlevini kullanarak kullanıcının sessiz bir zamanda mı, bilgisayardan uzakta mı yoksa Sunu modu gibi kesintisiz bir durumda mı olduğunu denetler. Sistemin bildiriminizi görüntüleyip görüntülemediği bu duruma bağlıdır.
Not
Uygulamanız Shell_NotifyIcon, IUserNotificationveya IUserNotification2kullanan özel bir bildirim yöntemi kullanıyorsa, bildirim kullanıcı arabiriminin o anda görüntülenip görüntülenmeyeceğini belirlemek için SHQueryUserNotificationState her zaman açıkça çağırmalıdır.
Kullanıcı dışarıdayken gönderilen bildirimler görüntülenmek üzere kuyruğa alınır, ancak kullanıcının ne zaman geri döneceğini veya o sırada bildirimin geçerli olup olmayacağını bilmediğiniz için bildirimi daha sonra yeniden göndermeyi düşünebilirsiniz.
Sessiz saatlerde gönderilen bildirimler gösterilmeyen şekilde atılır. Tasarım yönergeleri, tüm bildirimlerin yoksayılabilir olmasını ister. Hemen kullanıcı eylemi gerektirmemelidir. Bu nedenle, sessiz zamanı geçersiz kılması için hiçbir bildirim önemli değildir.
Bildirimi Görüntüleme
NOTIFYICONDATA sürümünü ayarladıktan ve bildirimi NOTIFYICONDATA yapısında tanımladıktan sonra, simgeyi görüntülemek için Shell_NotifyIcon çağırın.
Bildirim alanı simgesi yoksa, simgeyi eklemek için Shell_NotifyIcon'ı arayın. Bunu hem geçici hem de geçici olmayan simgeler için yapın.
NOTIFYICONDATA nid = {}; ... Shell_NotifyIcon(NIM_ADD, &nid);Bildirim alanı simgesi zaten varsa, simgeyi değiştirmek için Shell_NotifyIcon'ı arayın.
NOTIFYICONDATA nid = {}; ... Shell_NotifyIcon(NIM_MODIFY, &nid);
Aşağıdaki kodda, NOTIFYICONDATA verilerini ayarlama ve Shell_NotifyIconaracılığıyla gönderme örneği gösterilmektedir. Bu örnekte, bildirim simgesini bir GUID (Windows 7'de tercih edilir) aracılığıyla tanımladığını unutmayın.
// Declare NOTIFYICONDATA details.
// Error handling is omitted here for brevity. Do not omit it in your code.
NOTIFYICONDATA nid = {};
nid.cbSize = sizeof(nid);
nid.hWnd = hWnd;
nid.uFlags = NIF_ICON | NIF_TIP | NIF_GUID;
// Note: This is an example GUID only and should not be used.
// Normally, you should use a GUID-generating tool to provide the value to
// assign to guidItem.
static const GUID myGUID =
{0x23977b55, 0x10e0, 0x4041, {0xb8, 0x62, 0xb1, 0x95, 0x41, 0x96, 0x36, 0x69}};
nid.guidItem = myGUID;
// This text will be shown as the icon's tooltip.
StringCchCopy(nid.szTip, ARRAYSIZE(nid.szTip), L"Test application");
// Load the icon for high DPI.
LoadIconMetric(hInst, MAKEINTRESOURCE(IDI_SMALL), LIM_SMALL, &(nid.hIcon));
// Show the notification.
Shell_NotifyIcon(NIM_ADD, &nid) ? S_OK : E_FAIL;
SimgeYi Kaldırma
Bir simgeyi kaldırmak için (örneğin, bir bildirimi yayınlamak için simgeyi yalnızca geçici olarak eklediğinizde) burada gösterildiği gibi Shell_NotifyIconarayın. Bu çağrıda simgeyi tanımlayan en az NOTIFYICONDATA yapısı gerekir.
NOTIFYICONDATA nid = {};
...
Shell_NotifyIcon(NIM_DELETE, &nid);
Not
Bir uygulama kaldırıldığında, bildirim alanı simgesi yedi güne kadar Denetim Masası'ndaki Bildirim Alanı Simgeleri sayfasında kullanıcıya seçenek olarak görünmeye devam edebilir. Ancak, orada yapılan değişikliklerin hiçbir etkisi olmayacaktır.
SDK Örneği
Shell_NotifyIconkullanımına ilişkin tam bir örnek için Windows Yazılım Geliştirme Seti'ndeki (SDK) NotificationIcon Örneği örneğine bakın.
İlgili konular