Özel Giriş Yöntemi Düzenleyicisi (IME) gereksinimleri

Bu yönergeler ve gereksinimler, kullanıcının standart QWERTY klavyesinde kolayca temsil edilmeyecek bir dilde metin girişine yardımcı olmak için özel bir Giriş Yöntemi Düzenleyicisi (IME) geliştirmenize yardımcı olabilir.

IME'lere genel bakış için bkz. Giriş Yöntemi Düzenleyicisi (IME).

Varsayılan IME

Kullanıcı, etkin anlık iletilerinden herhangi birini (Ayarlar -> Saat ve Dil - Dil ->> Tercih edilen diller -> Dil paketi - Seçenekler) tercih ettiği dil için varsayılan IME olarak seçebilir.

Tercih edilen dil ayarı

Tercih edilen dil için Dil seçenekleri ayarları ekranında varsayılan klavyeyi seçin.

Tercih edilen dil klavyesi

Önemli

Özel IME'nizin varsayılan klavyesini ayarlamak için doğrudan kayıt defterine yazmanızı önermeyiz.

Uyumluluk gereksinimleri

Özel IME için temel uyumluluk gereksinimleri aşağıdadır.

IME, Windows uygulamalarıyla uyumlu olmalıdır

IMI'leri uygulamak için Metin Hizmetleri Çerçevesi'ni (TSF) kullanın. Daha önce giriş hizmetleri için Giriş Yöntemi Yöneticisi'ni (IMM32) kullanma seçeneğiniz vardı. Artık sistem, Giriş Yöntemi Yöneticisi (IMM32) kullanılarak uygulanan IMI'leri engelliyor.

Bir uygulama başlatıldığında, TSF şu anda kullanıcı tarafından seçilen IME için IME DLL'sini yükler. IME yüklendiğinde, uygulamayla aynı uygulama kapsayıcısı kısıtlamalarına tabi olur. Örneğin, bir uygulama bildiriminde İnternet erişimi istemediyse IME İnternet'e erişemez. Bu davranış, IME'lerin güvenlik sözleşmelerini ihlal etmemesini sağlar.

TSF, uygulama ile IME'niz arasındaki aracıdır. TSF, giriş olaylarını IME'ye iletir ve kullanıcı bir karakter seçtikten sonra giriş karakterlerini IME'den geri alır.

Bu davranış, Windows'un önceki sürümleriyle aynıdır, ancak bir Windows uygulamasına yüklenmek bir IME'nin olası özelliklerini etkiler.

IME'nizin Windows uygulamaları ve masaüstü uygulamaları arasında farklı işlevler veya kullanıcı arabirimi sağlaması gerekiyorsa, TSF tarafından yüklenen DLL'nin hangi tür uygulamaya yüklendiğini denetlediğinden emin olun. IME'nizde ITfThreadMgrEx::GetActiveFlags yöntemini çağırın ve TF_TMF_IMMERSIVEMODE bayrağını denetleyin; böylece IME'niz sonucu bağlı olarak farklı uygulama mantığını tetikler.

Windows uygulamaları Tablo Metin Hizmeti (TTS) ANLıK İletilerini desteklemez.

Uyarı

TTS IM'leri oluşturmaya yönelik bazı araçlar, Windows tarafından kötü amaçlı yazılım olarak işaretlenmiş IMI'ler üretir.

IME sistem tepsisiyle uyumlu olmalıdır

IME simgelerini barındırmak için dil çubuğu yoktur. Bunun yerine, sistem tepsisinde geçerli giriş seçeneğini gösteren bir Giriş Göstergesi gösterilir. Giriş Göstergesi, şu anda çalışmakta olan IME'yi göstermek için yalnızca IME markalama simgesini gösterir. Ayrıca, kullanıcıların IME'yi açma veya kapatma gibi en yaygın kullanılan IME modu anahtarını gerçekleştirmesi için IME marka simgesinin sol tarafında bir IME modu simgesi gösterilir.

Giriş Göstergesi yalnızca uyumlu IME'ler için IME marka simgesini ve mod simgesini gösterir. Uyumlu olmayan anlık iletilerde, sistem tepsisinde marka simgesi ve mod simgesi görüntülenmez. Bunun yerine, Giriş Göstergesi IME marka simgesi yerine dil kısaltmasını gösterir.

IME simgelerini tek başına .ico dosyası yerine bir DLL veya EXE dosyasında depolayın. IME simgelerinin tasarımı, aşağıdaki kullanıcı arabirimi tasarım yönergeleri bölümünde açıklanan yönergeleri izlemelidir.

IME marka simgesi

Giriş Göstergesi, sistemde kaydedildiğinde IME tarafından tanımlanan kaynak kimliğini kullanarak IME DLL'sinden IME markalama simgesini alır.

IME modu simgesi

Bazı IME'lerin IME modu simgesini görüntülemek için sistem tepsisinde gösterilen Giriş Göstergesine güvenmesi gerekebilir. Bu durumda IME, GUID_LBI_INPUTMODE kullanarak IME modu simgesini Giriş Göstergesine geçirir.

IME modu simgelerini sistem tepsisinde Giriş Göstergesi'ne geçirirken, IME modu simgesinin varsayılan boyutu 16x16 pikseldir. Kullanıcı arabirimi ölçeklendirmesi DPI'yi izler.

IME modu simgesini UAC'deki Giriş Göstergesine geçirirken (Güvenli Masaüstü'nde Kullanıcı Hesabı Denetimi), IME modu simgesinin varsayılan boyutu 20x20 pikseldir. UAC'de IME modu simgesinin kullanıcı arabirimi ölçeği PPI'yi izler.

IME uygulama kapsayıcısında çalışmalıdır

Bazı IME işlevleri bir uygulama kapsayıcısında etkilenir.

  • Sözlük Dosyaları - IM'ler genellikle kullanıcı girişini belirli karakterlerle eşlemek için salt okunur sözlük dosyalarına sahiptir. Bu dosyalara bir uygulama kapsayıcısının içinden erişmek için IME'nizin bunları Program Dosyaları veya Windows dizinleri altına yerleştirmesi gerekir. Varsayılan olarak, bu dizinler bir uygulama kapsayıcısından okunabilir, böylece IMI'ler bu konumlarda depolanan sözlük dosyalarına erişebilir. IME'nizin sözlük dosyasını başka bir yerde depolaması gerekiyorsa, uygulama kapsayıcılarından erişime izin vermek için sözlük dosyalarının Erişim Denetim Listelerini (ACL) açıkça işlemesi gerekir.
  • İnternet Güncelleştirmesi - IME'nizin İnternet'ten alınan verileri kullanarak sözlüklerini güncelleştirmesi gerekiyorsa, İnternet erişimine her zaman izin verilmediğinden uygulama kapsayıcısının içinde bunu güvenilir bir şekilde yapamaz. Bunun yerine, IME'niz sözlük dosyalarını İnternet'ten alınan verilerle güncelleştirmekten sorumlu olan ayrı bir masaüstü işlemi çalıştırmalıdır.
  • Anında öğrenme - IME, İnternet erişimi olan bir uygulama kapsayıcısında çalışıyorsa, IME'nin iletişim kurabileceği uç noktalarda herhangi bir kısıtlama yoktur. Bu durumda, IME anında öğrenme hizmetleri sağlamak için bir bulut sunucusu kullanabilir. Bazı IME'ler, kullanıcı yazarken kullanıcı girdisini gerçek zamanlı olarak indirip yükler. Bir uygulama kapsayıcısında İnternet erişimi garanti edilmediğinden, buna her zaman izin verilmeyebilir.
  • İşlemler arasında bilgi paylaşma - IME'lerin farklı uygulama kapsayıcılarındaki uygulamalar arasında kullanıcının giriş tercihleriyle ilgili verileri paylaşması gerekebilir. Uygulamalar arasında veri paylaşmak için bir web hizmeti kullanın.

Önemli

Uygulama kapsayıcısı güvenlik kurallarını aşmaya çalışırsanız, IME'niz kötü amaçlı yazılım olarak ele alınabilir ve engellenebilir.

IME ve dokunmatik klavye

IME'niz, aday bölmesinin kullanıcı arabiriminin ve diğer kullanıcı arabirimi öğelerinin dokunmatik klavyenin altına çekilmediğinden emin olmalıdır. Dokunmatik klavye tüm uygulamalardan daha yüksek z sıralı bir bantta görüntülenir ve IME kullanıcı arabirimi, etkin olduğu uygulamayla aynı z düzeni bandında görüntülenir. Sonuç olarak, dokunmatik klavye IME kullanıcı arabirimini çakışabilir ve gizleyebilir. Çoğu durumda uygulama, dokunmatik klavyeyi hesaba eklemek için penceresini yeniden boyutlandırmalıdır. Bir uygulama yeniden boyutlandırılmıyorsa IME, dokunmatik klavyenin konumunu almak için InputPane API'sini kullanmaya devam edebilir. IME, Location özelliğini sorgular veya dokunmatik klavyenin Göster ve Gizle olayları için bir işleyici kaydeder. Göster olayı, dokunmatik klavye şu anda görüntülense bile kullanıcı düzenleme alanına her dokunduğunda tetikleniyor. IME'niz, aday (veya diğer) kullanıcı arayüzünü çizmeden önce dokunmatik klavye tarafından kullanılan ekran alanını almak için bu API'yi kullanabilir. Ayrıca, dokunmatik klavyenin altına çizim yapmaktan kaçınmak amacıyla IME'nin kullanıcı arayüzünü yeniden düzenleyebilir.

Tercih edilen dokunmatik klavye düzenini belirtme

IME, hangi dokunmatik klavye düzeninin kullanılacağını belirtebilir ve IME, dokunma için iyileştirilmiş düzenlerle çalışacak şekilde etkinleştirilir. Bu işlev Korece, Japonca, Basitleştirilmiş Çince ve Geleneksel Çince giriş dilleri için IMI'lerle sınırlıdır.

Dokunmatik klavye tarafından desteklenen yedi düzen vardır ve bunlardan üçü klasik düzenler ve dördü dokunmatik için iyileştirilmiş düzenlerdir. Klasik düzenler fiziksel bir klavye gibi görünür ve davranır.

Üç klasik düzenin tümü farklı biçimlerde geleneksel Çince girişlerine yöneliktir:

  • Fonetik tabanlı giriş
  • Changjie girişi
  • Dayi girişi

Klasik düzenlere ek olarak, Korece, Japonca, Basitleştirilmiş Çince ve Geleneksel Çince giriş dillerinin her biri için dokunmatik olarak iyileştirilmiş bir düzen vardır.

Bu işlevselliği kullanmak için IME'nizin, Text Services Framework ITfFunctionProvider API'sini kullanarak IME tarafından dışarı aktarılan ITfFnGetPreferredTouchKeyboardLayout arabirimini uygulaması gerekir.

IME'niz ITfFnGetPreferredTouchKeyboardLayout arabirimini desteklemiyorsa, IME kullanıldığında dokunmatik klavye tarafından görüntülenen dil için varsayılan klasik düzen elde edilir.

IME'nizin klasik düzenlerden birini tercih edilen düzen olarak ayarlaması gerekiyorsa, ITfFnGetPreferredTouchKeyboardLayout ve ITfFunctionProvider arabirimlerini desteklemenin ötesinde IME tarafında ek bir çalışma gerekmez. Ancak, dokunma için iyileştirilmiş düzenlerle çalışmak için IME'de ek çalışma gereklidir ve bu, sonraki bölümde açıklanmıştır.

Dokunma için iyileştirilmiş düzen

Korece, Japonca, Basitleştirilmiş Çince ve Geleneksel Çince giriş dilleri için dokunmatik olarak iyileştirilmiş klavyeler, IME Açık ve IME Kapalı dönüştürme modları için farklı bir düzen görüntüler. Dokunmatik klavyede IME dönüştürme modunu Açık veya Kapalı olarak ayarlamak için bir tuş vardır, ancak düzenleme denetimleri arasında odak değiştikçe klavyenin IME modu da değişebilir.

Japonca, Basitleştirilmiş Çince ve Geleneksel Çince giriş dilleri için dokunmatik olarak iyileştirilmiş klavyeler, IME'nin aday sayfalarda gezinmek için kullandığı bir tuş veya tuş içerir. Japonca ve Basitleştirilmiş Çince için, aday sayfa anahtarı dokunmatik ekran için optimize edilmiş düzende görüntülenir. Geleneksel Çince için, önceki ve sonraki aday sayfaları için ayrı anahtarlar vardır.

Bu tuşlara basıldığında, dokunmatik klavye aşağıdaki Unicode Özel Kullanım Alanı karakterlerini odaklanmış uygulamaya göndermek için SendInput işlevini çağırır; bu karakterler IME'nin araya girip üzerinde işlem yapabilir:

  • Sonraki sayfa (0xF003) - Japonca ve Basitleştirilmiş Çince için dokunmatik iyileştirilmiş klavyede aday sayfa tuşuna basıldığında veya Geleneksel Çince için dokunmatik olarak iyileştirilmiş klavyede bir sonraki sayfa tuşuna basıldığında gönderilir.
  • Önceki sayfa (0xF004) - Japonca ve Basitleştirilmiş Çince için dokunmatik iyileştirilmiş klavyedeki Shift tuşuyla aynı anda aday sayfa tuşuna basıldığında veya Geleneksel Çince için dokunmatik olarak iyileştirilmiş klavyede önceki sayfa tuşuna basıldığında gönderilir.

Bu karakterler Unicode girişi olarak gönderilir. Sonraki paragrafta, Text Services Framework IME'nin alacağı anahtar olay havuzu bildirimleri sırasında karakter bilgilerinin nasıl ayıklanacağı ayrıntılı olarak anlatılır. Bu karakter değerleri hiçbir üst bilgi dosyasında tanımlanmadığından, bunları kodunuzda tanımlamanız gerekir.

Klavye girişini kesmek için IME'nizin anahtar olay havuzu olarak kaydedilmesi gerekir. SendInput işlevi kullanılarak oluşturulan Unicode girişi için , ITfKeyEventSink geri çağırmalarının WPARAM parametresi (OnKeyDown, OnKeyUp, OnTestKeyDown, OnTestKeyUp) her zaman sanal anahtar VK_PACKET içerir ve karakteri doğrudan tanımlamaz.

Karaktere erişmek için aşağıdaki çağrı dizisini uygulayın:

// Keyboard state
BYTE abKbdState[256];
if (!GetKeyboardState(abKbdState))
{
   return 0;
}

// Map virtual key to character code
WCHAR wch;
if (ToUnicode(VK_PACKET, 0, abKbdState, &wch, 1, 0) == 1)
{
   return wch;
}

IME arama tümleştirmesi

Arama sözleşmesi ve arama bölmesiyle tümleştirme aracılığıyla kullanıcılara arama özellikleri sağlayın.

Arama bölmesi ve IME önerileri
Arama bölmesi ve IME önerileri

Arama bölmesi, kullanıcıların tüm uygulamalarında arama yapabilmesi için merkezi bir konumdur. IME kullanıcıları için Windows, uyumlu IME'lerin daha fazla verimlilik ve kullanılabilirlik için Windows ile tümleştirilmesine olanak tanıyan benzersiz bir arama deneyimi sağlar.

Aramayla uyumlu bir IME ile yazan kullanıcılar iki ana avantajdan yararlanır:

  • IME ile arama deneyimi arasında sorunsuz etkileşim. IME adayları, arama önerilerini kapatmadan arama kutusunun altında doğrudan gösterilir. Kullanıcı, arama kutusu, IME dönüştürme adayları ve arama önerileri arasında sorunsuz bir şekilde gezinmek için klavyeyi kullanabilir.
  • Uygulamalar tarafından sağlanan ilgili sonuçlara ve önerilere daha hızlı erişim. Uygulama, daha ilgili öneriler sağlamak için tüm geçerli dönüştürme adaylarına erişebilir. Arama önerilerine daha iyi öncelik vermek için, uygulamalara ilgi sırasına göre dönüştürmeler verilir. Kullanıcılar yalnızca fonetik yazarak dönüştürmeden istedikleri sonucu bulur ve seçer.

IME, aşağıdaki ölçütleri karşılıyorsa tümleşik arama deneyimiyle uyumludur:

Arama bölmesinde etkinleştirildiğinde uyumlu bir IME, UIless moduna yerleştirilir ve kullanıcı arabirimini gösteremez. Bunun yerine, önceki ekran görüntüsünde gösterildiği gibi, dönüştürme adaylarını Windows'a gönderir ve bunları satır içi aday listesi denetiminde görüntüler.

Ayrıca, IME geçerli aramayı çalıştırmak için kullanılması gereken adayları gönderir. Bu adaylar, dönüştürme adaylarıyla aynı olabilir veya arama için uyarlanabilir.

İyi arama adayları aşağıdaki ölçütleri karşılar:

  • Ön ek çakışması yok. Örneğin, biri diğerinin ön eki olduğundan 北京大学 ve北京 yedeklidir.
  • Gereksiz aday yok. Gereksiz adaylar, sonuçları filtrelemeye yardımcı olmadıkları için arama açısından faydalı değildir. Örneğin, 北京大学 ile eşleşen tüm sonuçlar 北京 ile de eşleşir.
  • Tahmin adayı yok, yalnızca dönüşüm. Örneğin, kullanıcı "be" yazdığında, IME 北'ı aday olarak döndürebilir, ancak 北京大学 döndüremez. Genellikle tahmin adayları çok kısıtlayıcıdır.

Ölçütlere uymayen IME'ler diğer denetimlerle aynı şekilde arama görünümüyle uyumlu değildir ve kullanıcı arabirimi tümleştirmesi ve arama adaylarından yararlanamaz. Uygulamalar yalnızca kullanıcı yazmayı tamamladıktan sonra sorguları alır.

Arama sözleşmesini destekleyen bir uygulama bir sorgu aldığında, sorgu olayı en uygun olandan (büyük olasılıkla) en az ilgiliye (olasılık dışı) derecelenmiş tüm bilinen alternatifleri içeren bir "queryTextAlternatives" dizisi içerir.

Alternatifler sağlandığında, uygulamanın her alternatifi bir sorgu olarak ele alması ve alternatiflerden herhangi biriyle eşleşen tüm sonuçları döndürmesi gerekir. Uygulama, kullanıcı aynı anda birden çok sorgu yayınlayarak temelde hizmette sonuçları sağlayan bir "veya" sorgusu veriyormuş gibi davranmalıdır. Performansla ilgili dikkat edilmesi gerekenler için uygulamalar genellikle eşleştirmeyi en ilgili alternatiflerden 5 ila 20'sine sınırlar.

Kullanıcı arabirimi tasarım yönergeleri

Tüm IME'lerin Windows uygulamalarını tasarlama ve kodla bölümünde açıklanan kullanıcı deneyimi yönergelerine uyması gerekir.

Yapışkan pencereler kullanmayın

IME pencerelerinizin yalnızca gerektiğinde görünmesi ve her zaman görünmemesi gerekir. Kullanıcıların yazması gerekmediğinde IME pencereleri gösterilmemelidir. IME penceresi tam ekran penceresi olmamalıdır. IME pencereleri birbiriyle çakışmamalıdır. Pencereler Windows stilinde tasarlanmalı ve kullanıcı arabirimi ölçeklendirmesini izlemelidir.

IME simgeleri

İki tür IME simgesi vardır: markalama simgeleri ve mod simgeleri. Tüm IME simgeleri yalnızca siyah beyaz renklerle tasarlanmalıdır. Yeni IME simgeleri, sistem tepsisi simgelerinin glifik görünümünden ödünç alır. Bu stil, tüm dillerin birbirlerinden ayrışırken ailesel görünümü tamamlamak için kullanabilmesi için oluşturulmuştur.

IME simgelerinin dosya biçimi ICO'dur. Aşağıdaki simge boyutlarını sağlamanız gerekir.

  • 16x16 piksel
  • 20x20 piksel
  • 24x24 piksel
  • 32x32 piksel
  • 40x40 piksel
  • 48x48 piksel

Alfa kanalına sahip 32 bit simgelerin tüm çözünürlüklerde sağlandığından emin olun.

IME marka simgeleri, modern bir yazı tipinde işlenen tipografik glifin yerleştirildiği beyaz bir kutuyla tanımlanır. Her tanımlama karakteri her dil ekibi tarafından seçilir. Glif siyah. Kutu, %50 saydamlıkta 1 piksel siyah bir dış çizgi içerir. "Yeni" sürümler, kutunun sol üst köşesindeki yuvarlatılmış bir köşeyle tanımlanır.

IME mod ikonları, %50 opaklıkta siyah 1 piksel dış vuruşa sahip modern bir yazı tipindeki beyaz tipografik karakter ile tanımlanır.

İkon Description
Geleneksel Çince ChangeJie için örnek IME marka simgesi. Geleneksel Çince ChangeJie için örnek IME marka simgesi.
Geleneksel Çince Yeni ChangeJie için örnek IME marka simgesi. Geleneksel Çince ChangeJie için örnek IME marka simgesi.
Çince modu simgesi Örnek IME modu simgesi.

Sahip olunan pencere

Aday kullanıcı arabirimini görüntülemek için, bir IME'nin o anda çalışan uygulama üzerinden görüntüleyebilmesi için penceresinin sahip olunan pencere olarak ayarlanması gerekir. Sahip olunması gereken pencereyi almak için ITfContextView::GetWnd yöntemini kullanın. GetWnd bir hata veya NULLHWND döndürürse GetFocus işlevini çağırın.

if (FAILED(pView->GetWnd(&parentWndHandle)) || (parentWndHandle == nullptr)) { parentWndHandle = GetFocus(); }

IME aday penceresinin hafif kapatma yüzeyleriyle etkileşimi

Açılır pencere kapatma modeli, kullanıcıların bu tür pencereleri kolayca kapatabilmesi nedeniyle "light dismiss" olarak adlandırılır. IME'lerin Windows etkileşim modelinde düzgün çalışması için IME pencerelerinin ışık kapatma modeline katılması gerekir.

Işık kapatma modeline katılmak için IME'nizin NotifyWinEvent işlevini veya benzer bir işlevi kullanarak üç yeni Windows olayı oluşturması gerekir. Bu yeni olaylar şunlardır:

  • EVENT_OBJECT_IME_SHOW - IME görünür olduğunda bu olayı tetikler.
  • EVENT_OBJECT_IME_HIDE - IME gizlendiğinde bu olayı tetikler.
  • EVENT_OBJECT_IME_CHANGE - IME hareket ettiğinde veya boyut değiştiğinde bu olayı tetikler.

Uyumluluğu bildirme

IME'ler, uyumlu olduklarını IME için kategori GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT'u ITfCategoryMgr::RegisterCategory ile kaydederek bildirir.

Varsayılan IME modunu açık olarak ayarlama

IMI'ler için daha iyi bir UX sağlıyoruz.

Masaüstü uygulamaları için DPI ölçeklendirme desteği

Gelişmiş DPI ölçeklendirme desteği, kullanıcı arabirimini ölçeklendirmesi gerekip gerekmediğini belirlemek için her masaüstü işleminin bildirilen DPI farkındalık düzeyini sorgulamaya olanak tanır. Çoklu monitör senaryosunda Windows, her monitördeki farklı DPI ayarları için kullanıcı arabirimini uygun şekilde ölçeklendirir.

IME'niz her uygulamanın süreci bağlamında çalıştığından, IME'niz için DPI farkındalık düzeyi bildirmemelisiniz. Bu, IME'nizin geçerli işlemin DPI farkındalık seviyesinde çalışmasını sağlar.

Tüm IME kullanıcı arabirimi öğelerinin, çalıştırdığınız işlemin kullanıcı arabirimi öğeleriyle ölçeklendirme eşliğine sahip olduğundan emin olmak için farklı DPI değerlerine uygun şekilde yanıt vermelisiniz.

Uyarı

Yeni masaüstü uygulamalarıyla eşliği sağlamak için IME'niz monitör-DPI farkındalığını desteklemelidir ancak bir farkındalık düzeyi bildirmemelidir. Sistem her senaryoda uygun ölçeklendirme gereksinimlerini belirler.

Masaüstü uygulamaları için DPI ölçeklendirme desteği gereksinimleri hakkında ayrıntılı bilgi için bkz. Yüksek DPI.

IME yüklemesi

IME'nizi Microsoft Visual Studio kullanarak oluşturuyorsanız, Flexera Software'den InstallShield gibi bir üçüncü taraf yükleyici kullanarak IME'niz için bir yükleme deneyimi oluşturun.

Aşağıdaki adımlarda, IME DLL'niz için kurulum projesi oluşturmak üzere InstallShield'in nasıl kullanılacağı gösterilmektedir.

  • Visual Studio'yu yükleyin.
  • Visual Studio'yu başlatın.
  • Dosya menüsünde Yeni'nin üzerine gelin ve Proje'yi seçin. Yeni Proje iletişim kutusu açılır.
  • Sol bölmede Şablonlar > Diğer Proje Türleri > Kurulumu ve Dağıtımı'na gidin, InstallShield Sınırlı Sürümünü Etkinleştir'e ve tamam'a tıklayın. Yükleme talimatlarını izleyin.
  • Visual Studio'yu yeniden başlatın.
  • IME çözümü (.sln) dosyasını açın.
  • Çözüm Gezgini'nde çözüme sağ tıklayın, Ekle'nin üzerine gelin ve Yeni Proje'yi seçin. Yeni Proje Ekle iletişim kutusu açılır.
  • Sol ağaç görünümü denetiminde Şablonlar > Diğer Proje Türleri > InstallShield Limited Edition'a gidin.
  • Orta pencerede InstallShield Sınırlı Sürüm Projesi'ne tıklayın.
  • Ad metin kutusuna "SetupIME" yazın ve Tamam tıklayın.
  • Proje Yardımcısı iletişim kutusunda Uygulama Bilgileri'ne tıklayın.
  • Şirketinizin adını ve diğer alanları doldurun.
  • Uygulama Dosyaları'ne tıklayın.
  • Sol bölmede [INSTALLDIR] klasörüne sağ tıklayın ve Yeni Klasör'ü seçin. Klasörü "Eklentiler" olarak adlandırın.
  • Dosya Ekle'ye tıklayın. IME DLL'nize gidin ve Eklentiler klasörüne ekleyin. IME sözlüğü için bu adımı yineleyin.
  • IME DLL'sine sağ tıklayın ve Özellikler'i seçin. Özellikler iletişim kutusu açılır.
  • Özellikler iletişim kutusunda COM ve .NET Ayarları sekmesine tıklayın.
  • Kayıt Türü'nin altında Kendi kendine kayıt'ı seçin ve Tamam'a tıklayın.
  • Çözümü oluşturun. IME DLL'i oluşturulur ve InstallShield, kullanıcıların IME'nizi Windows'a yüklemesini sağlayan bir setup.exe dosyası oluşturur.

Kendi yükleme deneyiminizi oluşturmak için IME'yi yükleme sırasında kaydetmek için ITfInputProcessorProfileMgr::RegisterProfile yöntemini çağırın. Kayıt defteri girdilerini doğrudan yazmayın.

Yüklemeden hemen sonra IME'nin kullanılabilir olması gerekiyorsa, psz parametresi için aşağıdaki biçimi kullanarak IME'yi kullanıcı etkinleştirilmiş giriş yöntemlerine eklemek için InstallLayoutOrTip'i çağırın:

<LangID 1>:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

IME erişilebilirliği

Giriş Yöntemi Düzenleyicilerinizin erişilebilirlik gereksinimlerine uygun olmasını sağlamak ve Narrator ile çalışabilmesi için aşağıdaki konvansiyonu uygulayın. Aday listelerinin erişilebilir olmasını sağlamak için, Girdi Yöntemi Düzenleyicilerinizin (IME'ler) bu kurala uyması gerekir.

  • Aday listesinde, dönüştürme adayı listeleri için " IME_Candidate_Window " veya tahmin adayı listeleri için "IME_Prediction_Window" değerine eşit bir UIA_AutomationIdPropertyId olmalıdır.
  • Aday listesi görüntülenip kaybolduğunda sırasıyla UIA_MenuOpenedEventId ve UIA_MenuClosedEventId türünde olaylar oluşturur
  • Seçilen geçerli aday değiştiğinde, aday listesi bir UIA_SelectionItem_ElementSelectedEventId olayı tetikler. Seçili öğenin TRUE'ya eşit UIA_SelectionItemIsSelectedPropertyId bir özelliği olmalıdır.
  • Aday listesindeki her öğenin UIA_NamePropertyId , adayın adı olmalıdır. İsteğe bağlı olarak, UIA_HelpTextPropertyId aracılığıyla adayların belirsiz olmasını sağlamak için ek bilgiler sağlayabilirsiniz.