Egyéni beviteli módszerszerkesztő (IME) követelményei

Ezek az irányelvek és követelmények segíthetnek egy egyéni beviteli módszerszerkesztő (IME) fejlesztésében, amely segít a felhasználói szövegbevitelben olyan nyelven, amely nem jeleníthető meg könnyen egy szabványos QWERTY-billentyűzeten.

Az IME-kről való áttekintést lásd: Input Method Editor (IME).

Alapértelmezett IME

A felhasználók bármelyik aktív IME-jüket (Beállítások –> Idő és nyelv –> Nyelv –> Előnyben részesített nyelvek –> Nyelvi csomag – Beállítások) választhatják, hogy az alapértelmezett IME legyen az előnyben részesített nyelvükhöz.

Előnyben részesített nyelvi beállítás

Válassza ki az alapértelmezett billentyűzetet az előnyben részesített nyelv nyelvbeállítási képernyőjén.

Előnyben részesített nyelvi billentyűzet

Fontos

Nem javasoljuk, hogy közvetlenül a beállításjegyzékbe írjon az egyéni IME alapértelmezett billentyűzetének beállításához.

Kompatibilitási követelmények

Az egyéni IME-k alapvető kompatibilitási követelményei az alábbiak.

Az IME-nek kompatibilisnek kell lennie a Windows-alkalmazásokkal

A Text Services Framework (TSF) használatával implementálhat bemeneti eszközszerkesztőket (IME). Korábban lehetősége volt az Input Method Manager (IMM32) használatára a bemeneti szolgáltatásokhoz. A rendszer most blokkolja az Input Method Editors (IME), amelyeket az Input Method Manager (IMM32) segítségével valósítottak meg.

Amikor egy alkalmazás elindul, a TSF betölti a felhasználó által jelenleg kijelölt IME-hez tartozó IME DLL-t. Az IME betöltésekor az alkalmazás tárolókorlátozásai ugyanazokra vonatkoznak, mint az alkalmazásra. Egy IME például nem tud hozzáférni az internethez, ha egy alkalmazás nem kért internetkapcsolatot a jegyzékben. Ez a viselkedés biztosítja, hogy az IME-k nem sérthetik meg a biztonsági szerződéseket.

A TSF az alkalmazás és az IME közötti közvetítő. A TSF közli a bemeneti eseményeket az IME-nek, és a bemeneti karaktereket visszaküldi az IME-ből, miután a felhasználó kiválasztott egy karaktert.

Ez a viselkedés megegyezik a Windows korábbi verzióival, de a Windows-alkalmazásokba való betöltés hatással van az IME lehetséges képességeire.

Ha az IME-nek különböző funkciókat vagy felhasználói felületet kell biztosítania a Windows-alkalmazások és az asztali alkalmazások között, győződjön meg arról, hogy a TSF által betöltött DLL ellenőrzi, hogy milyen típusú alkalmazásba van betöltve. Hívja meg az ITfThreadMgrEx::GetActiveFlags metódust az IME-ben, és ellenőrizze a TF_TMF_IMMERSIVEMODE jelzőt, így az IME az eredménytől függően eltérő alkalmazáslogikát aktivál.

A Windows-alkalmazások nem támogatják a Table Text Service (TTS) IME-ket.

Megjegyzés:

Egyes TTS-csevegőeszközök olyan csevegőgépeket hoznak létre, amelyeket a Windows kártevőként jelölt meg.

Az IME-nek kompatibilisnek kell lennie a rendszertálcával

Nincs nyelvi eszköztár az IME-ikonok üzemeltetéséhez. Ehelyett egy bemeneti jelző jelenik meg a tálcán, amely az aktuális bemeneti beállítást jelzi. A bemeneti jelző csak az IME márkajelzés ikonját jeleníti meg, amely az aktuálisan futó IME-t jelzi. Emellett egy IME mód ikon is látható az IME védjegyzés ikonjának bal oldalán, amellyel a felhasználók végrehajthatják a leggyakrabban használt IME mód kapcsolóját, például be- vagy kikapcsolhatják az IME-t.

A bemeneti jelző csak kompatibilis csevegőhálózatok esetén jeleníti meg az IME márkajelzés ikonját és a mód ikonját. A nem kompatibilis IME-k nem jelenítik meg a márkajelzés ikont és a mód ikont a rendszertálcán. Ehelyett az Input Indicator az IME márkajelzés ikonja helyett a nyelvi rövidítést jeleníti meg.

Az IME-ikonokat dll- vagy EXE-fájlban tárolja önálló .ico helyett. Az IME-ikonok kialakításának az alábbi felhasználói felületi tervezési útmutatókban leírt irányelveket kell követnie.

IME védjegyikon

A bemeneti jelző az IME DLL-ből szerzi meg az IME védjegy ikonját, az IME által a rendszerre történő regisztráláskor meghatározott erőforrás-azonosító segítségével.

IME mód ikon

Előfordulhat, hogy egyes IME-knek a rendszertálcán megjelenő bemeneti kijelzőre kell támaszkodniuk az IME mód ikon megjelenítéséhez. Ebben az esetben az IME GUID_LBI_INPUTMODE használatával továbbítja az IME mód ikonját a bemeneti jelzőnek.

Az IME mód ikonjainak a rendszertálcán lévő bemeneti jelzőnek való átadásakor az IME mód ikonjának alapértelmezett mérete 16x16 képpont. A felhasználói felület skálázása a DPI-t követi.

Amikor átadja az IME mód ikont a UAC bemeneti jelzőjének (a biztonságos asztali felhasználói fiók vezérlése), az IME mód ikonjának alapértelmezett mérete 20x20 képpont. Az IME mód ikonjának skálázása a UAC-ban a PPI-t követi.

Az IME-nek az alkalmazástárolóban kell működnie

Az alkalmazástárolóban egyes IME-függvények érintettek.

  • Szótárfájlok – Az IME-k gyakran csak olvasható szótárfájlokkal rendelkeznek, amelyek a felhasználói bevitelt meghatározott karakterekhez rendelik. Ha egy alkalmazástárolóból szeretné elérni ezeket a fájlokat, az IME-nek a Programfájlok vagy a Windows könyvtárai alá kell helyeznie őket. Alapértelmezés szerint ezek a könyvtárak egy alkalmazástárolóból olvashatók, így a csevegőhálózatok hozzáférhetnek az ezeken a helyeken tárolt szótárfájlokhoz. Ha az IME-nek valahol máshol kell tárolnia a szótárfájlt, explicit módon módosítania kell a szótárfájlok hozzáférés-vezérlési listáit (ACL-eit) az alkalmazástárolókból való hozzáférés engedélyezéséhez.
  • Internetfrissítés – Ha az IME-nek az internetről származó adatokkal kell frissítenie a szótárait, nem tudja megbízhatóan megtenni az alkalmazástárolóban, mert az internet-hozzáférés nem mindig engedélyezett. Ehelyett az IME-nek külön asztali folyamatot kell futtatnia, amely a szótárfájlok internetes adatokkal való frissítéséért felelős.
  • On-the-fly learning – Ha egy IME olyan alkalmazástárolóban fut, amely rendelkezik internet-hozzáféréssel, nincs korlátozás azokra a végpontokra, amelyekkel az IME kommunikálni tud. Ebben az esetben az IME egy felhőkiszolgáló használatával biztosíthatja a menet közbeni tanulási szolgáltatásokat. Egyes IME-k valós időben letöltik és feltöltik a felhasználói adatokat, amikor a felhasználó gépel. Mivel az internet-hozzáférés nem garantált egy alkalmazástárolóban, előfordulhat, hogy ez nem mindig engedélyezett.
  • Információk megosztása folyamatok között – Előfordulhat, hogy a csevegőkiszolgálóknak adatokat kell megosztaniuk a felhasználó bemeneti beállításairól a különböző alkalmazástárolókban lévő alkalmazások között. Adatok megosztása alkalmazások között webszolgáltatás használatával.

Fontos

Ha megpróbálja megkerülni az alkalmazástároló biztonsági szabályait, előfordulhat, hogy az IME kártevőként lesz kezelve és letiltva.

IME és érintéses billentyűzet

Az IME-nek biztosítania kell, hogy a jelölt panel felhasználói felülete és egyéb felhasználói felületi elemei ne legyenek rajzolva az érintőbillentyűzet alá. Az érintőbillentyűzet az összes alkalmazásnál magasabb z-order sávban jelenik meg, és az IME felhasználói felülete ugyanabban a z-order sávban jelenik meg, mint az aktív alkalmazás. Ennek eredményeképpen az érintőbillentyűzet átfedheti és elrejtheti az IME felhasználói felületét. A legtöbb esetben az alkalmazásnak át kell méreteznie az ablakot, hogy figyelembe vegye az érintőbillentyűzetet. Ha egy alkalmazás nem méreteződik át, az IME továbbra is használhatja az InputPane API-t az érintőbillentyűzet pozíciójának lekéréséhez. Az IME lekérdezi a Location tulajdonságot, vagy regisztrál egy kezelőt az érintőbillentyűzet Események megjelenítése és elrejtése funkciójához. A Show esemény minden alkalommal aktiválásra kerül, amikor a felhasználó egy szerkesztőmezőbe koppint, és akkor is, ha az érintőbillentyűzet jelenleg meg van jelenítve. Az IME ezzel az API-val lekérheti az érintőbillentyűzet által használt képernyőterületet, mielőtt megrajzolja a jelölt (vagy más) felhasználói felületet, és áttervezheti az IME felületet, hogy elkerülje annak megjelenítését az érintőbillentyűzet alatt.

Az előnyben részesített érintőbillentyűzet-elrendezés megadása

Az IME megadhatja, hogy melyik érintéses billentyűzetkiosztást használja, és az IME lehetővé teszi az érintésre optimalizált elrendezések használatát. Ez a funkció a koreai, japán, kínai egyszerűsített és hagyományos kínai beviteli nyelvekhez tartozó IME-kre korlátozódik.

Az érintőbillentyűzet hét elrendezést támogat, amelyek közül három klasszikus elrendezés, négy pedig érintésre optimalizált elrendezés. A klasszikus elrendezések fizikai billentyűzetként jelennek meg és viselkednek.

A három klasszikus elrendezés mindegyike a hagyományos kínaiak különböző formában történő bevitelére használható:

  • Fonetikai alapú bemenet
  • Changjie bemenet
  • Dayi bemenet

A klasszikus elrendezések mellett egy érintésre optimalizált elrendezés is elérhető a koreai, a japán, az egyszerűsített kínai és a hagyományos kínai beviteli nyelvek mindegyikéhez.

A funkció használatához az IME-nek implementálnia kell az ITfFnGetPreferredTouchKeyboardLayout felületet, amelyet az IME exportál a Text Services Framework ITfFunctionProvider API-val.

Ha az IME nem támogatja az ITfFnGetPreferredTouchKeyboardLayout felületet, az IME használatával az érintéses billentyűzet által megjelenített nyelv alapértelmezett klasszikus elrendezése jelenik meg.

Ha az IME-nek a klasszikus elrendezések egyikét kell beállítania előnyben részesített elrendezésként, az IME oldalán nincs szükség további munkára az ITfFnGetPreferredTouchKeyboardLayout és az ITfFunctionProvider felületek támogatásán túl. Az érintésre optimalizált elrendezések használatához azonban további munkára van szükség az IME-ben, és ezt a következő szakaszban ismertetjük.

Érintésre optimalizált elrendezés

A koreai, japán, egyszerűsített kínai és hagyományos kínai beviteli nyelvek érintésre optimalizált billentyűzetei eltérő elrendezést mutatnak az IME Be és az IME Off konverziós módhoz. Az érintőbillentyűzeten egy billentyűvel be- vagy kikapcsolt állapotba állíthatja az IME-konverziós módot, de a billentyűzet IME-üzemmódja is megváltozhat a szerkesztési vezérlők fókuszváltozása során.

A japán, egyszerűsített kínai és hagyományos kínai beviteli nyelvek érintésre optimalizált billentyűzetei olyan kulcsot vagy billentyűket tartalmaznak, amelyeket az IME használ a jelölt lapok közötti navigáláshoz. Japán és egyszerűsített kínai esetén a jelölt oldalkulcs az érintésre optimalizált elrendezésen jelenik meg. A hagyományos kínaiak esetében az előző és a következő jelöltoldalakhoz külön kulcsok tartoznak.

A billentyűk lenyomásakor az érintőbillentyűzet meghívja a SendInput függvényt, hogy küldje el a következő Unicode Private Use Area karaktereket a szűrt alkalmazásnak, amelyet az IME képes elfogni és végrehajtani:

  • Következő oldal (0xF003) – Akkor küldi el, ha a jelölt oldalkulcsot a japán és az egyszerűsített kínai billentyűzet érintésre optimalizált billentyűzetén lenyomja, vagy ha a következő oldalkulcsot a hagyományos kínai billentyűzet érintésre optimalizált billentyűzetén lenyomja.
  • Előző oldal (0xF004) – Akkor küldi el, ha a jelölt lapkulcsot a shift billentyűvel egy időben lenyomja a japán és egyszerűsített kínai billentyűzet érintésoptimalizált billentyűzetén, vagy ha az előző oldalkulcsot a hagyományos kínai billentyűzet érintésre optimalizált billentyűzetén lenyomja.

Ezek a karakterek Unicode-bemenetként lesznek elküldve. A következő bekezdés bemutatja, hogyan nyerheti ki a karakteradatokat a Text Services-keretrendszer IME által fogadott legfontosabb esemény fogadó értesítései során. Ezek a karakterértékek egyetlen fejlécfájlban sem vannak definiálva, ezért ezeket a kódban kell definiálnia.

A billentyűzetbemenet elfogásához az IME-nek kulcsesemény-fogadóként kell regisztrálnia. A SendInput függvény használatával létrehozott Unicode-bemenetek esetében az ITfKeyEventSink visszahívások WPARAM paramétere (OnKeyDown, OnKeyUp, OnTestKeyDown, OnTestKeyUp) mindig tartalmazza a virtuális kulcsot VK_PACKET, és nem azonosítja közvetlenül a karaktert.

A karakter eléréséhez hajtsa végre a következő hívásütemezést:

// 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 keresési integráció

A keresési szerződéssel és a keresési panellel való integrációval biztosítson keresési funkciókat a felhasználóknak.

Keresési panel és IME-javaslatok
Keresési panel és IME-javaslatok

A keresési panel egy központi hely, ahol a felhasználók az összes alkalmazásukban végezhetnek keresést. Az IME-felhasználók számára a Windows egyedi keresési felületet biztosít, amellyel a kompatibilis csevegőprogramok integrálhatók a Windowssal a nagyobb hatékonyság és a használhatóság érdekében.

A kereséssel kompatibilis IME-vel begépelt felhasználók két fő előnyt élveznek:

  • Zökkenőmentes interakció az IME és a keresési felület között. Az IME-jelöltek a keresőmező alatt, a keresési javaslatok elzárása nélkül jelennek meg a szövegben. A felhasználó a billentyűzettel zökkenőmentesen navigálhat a keresőmező, az IME-konverziós jelöltek és a keresési javaslatok között.
  • Gyorsabb hozzáférés az alkalmazások által biztosított releváns eredményekhez és javaslatokhoz. Az alkalmazás hozzáféréssel rendelkezik az összes jelenlegi konverziós jelölthez, hogy relevánsabb javaslatokat nyújtson. A keresési javaslatok jobb rangsorolása érdekében a konverziók relevancia szerinti sorrendben jelennek meg az alkalmazásokban. A felhasználók csak a fonetikai beírással találják meg és jelölik ki a kívánt eredményt konvertálás nélkül.

Az IME kompatibilis az integrált keresési felülettel, ha megfelel az alábbi feltételeknek:

Ha aktiválva van a keresési panelen, a kompatibilis IME felhasználói felület nélküli módban lesz elhelyezve, és nem tudja megjeleníteni a felhasználói felületét. Ehelyett konverziós jelölteket küld a Windowsnak, amely megjeleníti őket a beágyazott jelöltlista vezérlőelemben, ahogy az előző képernyőképen is látható.

Emellett az IME olyan jelölteket is küld, amelyeket az aktuális keresés futtatásához kell használni. Ezek a jelöltek lehetnek azonosak a konverziós jelöltekkel, vagy a kereséshez is testre szabhatók.

A jó keresési jelöltek megfelelnek a következő feltételeknek:

  • Nincs átfedés az előtaggal. Például a 北京大学 és a北京 redundánsak, mert az egyik a másik előtagja.
  • Nincsenek redundáns jelöltek. A redundáns jelöltek nem hasznosak a kereséshez, mert nem segítenek az eredmények szűrésében. Például bármelyik eredmény, amely megfelel a 北京大学-nak, megfelel a 北京-nek is.
  • Nincs előrejelzési jelölt, csak konverzió. Ha például a felhasználó a "be" típust írja be, az IME képes 北 visszaadni jelöltként, de nem 北京大学. Az előrejelzési jelöltek általában túl korlátozóak.

Azok az IME-k, amelyek nem felelnek meg a követelményeknek, nem kompatibilisek a keresési megjelenítésben ugyanúgy, ahogy más vezérlők, és nem tudják kihasználni a felhasználói felület integrációját és a keresési javaslatokat. Az alkalmazások csak a felhasználó írásának befejezése után kapnak lekérdezéseket.

Amikor egy keresési szerződést támogató alkalmazás lekérdezést kap, a lekérdezési esemény tartalmaz egy "queryTextAlternatives" tömböt, amely tartalmazza az összes ismert alternatívát, rangsorolva a legrelevánsabbtól (valószínűleg) a legkevésbé relevánsig (valószínűleg).

Ha alternatív megoldásokat ad meg, az alkalmazásnak minden alternatívát lekérdezésként kell kezelnie, és minden olyan eredményt vissza kell adnia, amely megfelel bármelyik alternatívának. Az alkalmazásnak úgy kell viselkednie, mintha a felhasználó egyszerre több lekérdezést adott volna ki, lényegében egy "vagy" lekérdezést ad ki az eredményeket biztosító szolgáltatásnak. A teljesítmény szempontjából az alkalmazások gyakran 5 és 20 közöttire korlátozzák az egyeztetést a legrelevánsabb alternatívák közül.

Felhasználói felület tervezési irányelvei

Minden csevegőgépnek követnie kell a Windows-alkalmazások tervezésében és kódjában leírt felhasználói élményre vonatkozó irányelveket.

Ne használjon ragadós ablakokat

Az IME-ablakok csak akkor jelenjenek meg, ha szükséges, és ne legyenek mindig láthatók. Ha a felhasználóknak nem kell begépelni, az IME-ablakok nem jelennek meg. Az IME-ablak nem lehet teljes képernyős ablak. Az IME-ablakok nem fedik egymást. Az ablakokat Windows-stílusban kell megtervezni, és követni kell a felhasználói felület skálázását.

IME-ikonok

Kétféle IME-ikon, márkajelzési ikon és módikon létezik. Minden IME-ikont csak fekete-fehér színekkel kell megtervezni. Az új IME-ikonok a rendszertálca ikonjainak glifikus megjelenéséből kölcsönöznek. Ez a stílus azért lett létrehozva, hogy minden nyelv használni tudja, hogy kiegészítse a családi megjelenést, miközben különbözik egymástól.

Az IME-ikonok fájlformátuma az ICO. Az alábbi ikonméreteket kell megadnia.

  • 16x16 képpont
  • 20x20 képpont
  • 24x24 képpont
  • 32x32 képpont
  • 40 x 40 képpont
  • 48x48 képpont

Győződjön meg arról, hogy az alfa csatornával rendelkező 32 bites ikonok minden felbontásban elérhetők.

Az IME-márkaikonokat egy fehér mező határozza meg, amelyben egy modern betűtípusban renderelt tipográfiai glifát helyeznek el. Minden definiáló karakterjelet az egyes nyelvi csapatok választanak ki. A glyph fekete. A doboz 50% átlátszóságú, 1 képpontos fekete külső körvonalat tartalmaz. Az "Új" verziókat a mező bal felső sarkában található lekerekített sarok határozza meg.

Az IME mód ikonjait egy fehér tipográfiai karakterjel határozza meg egy modern betűtípusban, amely 50% átlátszóságnál egy 1 képpontos külső körvonalat tartalmaz.

Icon Description
Példa IME-márka ikon a hagyományos kínai ChangeJie-hez. Példa IME-márka ikon a hagyományos kínai ChangeJie-hez.
Példa az IME márka ikonjára a hagyományos kínai New ChangJie esetében. Példa IME-márka ikon a hagyományos kínai ChangeJie-hez.
Kínai üzemmód ikon Példa az IME mód ikonra.

Saját ablak

A jelölt felhasználói felület megjelenítéséhez az IME-nek saját ablakként kell beállítania az ablakot, hogy az megjeleníthető legyen az éppen futó alkalmazásban. A ITfContextView::GetWnd módszer használatával kérje le a tulajdonolandó ablakot. Ha a GetWnd hibát vagy NULLHWND értéket ad vissza, hívja meg a GetFocus függvényt.

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

IME-jelölt ablak interakciója fényelbocsátó felületekkel

Az előugró ablakok elbocsátási modelljét "egyszerűsített elbocsátásnak" nevezzük, mivel a felhasználó könnyen bezárhatja az ilyen ablakokat. Ahhoz, hogy az IME-k jól működjenek a Windows-interakciós modellben, az IME-ablakoknak részt kell venniük a light dismiss modellben.

A egyszerűsített elbocsátási modellben való részvételhez az IME-nek három új Windows-eseményt kell létrehoznia a NotifyWinEvent függvény vagy egy hasonló függvény használatával. Ezek az új események a következők:

  • EVENT_OBJECT_IME_SHOW – Ezt az eseményt akkor emelje fel, amikor az IME láthatóvá válik.
  • EVENT_OBJECT_IME_HIDE – Ezt az eseményt akkor emelje fel, ha az IME el van rejtve.
  • EVENT_OBJECT_IME_CHANGE – Ezt az eseményt akkor emelje fel, amikor az IME áthelyezi vagy módosítja a méretét.

Kompatibilitás deklarálása

Az IME-k a kompatibilitásukat az ITfCategoryMgr::RegisterCategory használatával jelentik be, regisztrálva a GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT kategóriát az IME-hez.

Az alapértelmezett IME-mód beállítása bekapcsolva

Jobb UX-t biztosítunk az IME-khez.

DPI-méretezés támogatása asztali alkalmazásokhoz

A bővített DPI-skálázási támogatás lehetővé teszi az egyes asztali folyamatok deklarált DPI-tudatossági szintjének lekérdezését annak megállapításához, hogy szükség van-e a felhasználói felület skálázására. Többmonitoros forgatókönyv esetén a Windows megfelelően skálázza a felhasználói felületet az egyes monitorok különböző DPI-beállításaihoz.

Mivel az IME az egyes alkalmazások folyamatának kontextusában fut, nem szabad dpi-tudatossági szintet deklarálnia az IME-hez. Ez biztosítja, hogy az IME a jelenlegi folyamat DPI-tudatossági szintjén fusson.

Annak érdekében, hogy minden IME felhasználói felületi elem skálázási paritású legyen a folyamat felhasználói felületi elemeivel, megfelelően kell válaszolnia a különböző DPI-értékekre.

Megjegyzés:

Az új asztali alkalmazásokkal való paritás biztosítása érdekében az IME-nek támogatnia kell a monitoronkénti DPI-tudatosságot, de magát a tudatossági szintet nem szabad deklarálnia. A rendszer minden forgatókönyvben meghatározza a megfelelő méretezési követelményeket.

Az asztali alkalmazások DPI-skálázási támogatási követelményeiről további információt a Magas DPI című témakörben talál.

IME-telepítés

Ha az IME-t a Microsoft Visual Studióval hozza létre, hozzon létre egy telepítési felületet az IME számára egy külső telepítővel, például a Flexera Software InstallShield szolgáltatásával.

Az alábbi lépések bemutatják, hogyan hozhat létre telepítőprojektet az InstallShield használatával az IME DLL-hez.

  • Telepítse a Visual Studiót.
  • Indítsa el a Visual Studiót.
  • A Fájl menüben mutasson az Új pontra, és válassza a Project lehetőséget. Megnyílik az Új projekt párbeszédpanel.
  • A bal oldali panelen keresse meg a Sablonok > más projekttípusok > beállítását és üzembe helyezését, kattintson az InstallShield Limited Edition engedélyezése elemre, és kattintson az OK gombra. Kövesse a telepítési utasításokat.
  • Indítsa újra a Visual Studiót.
  • Nyissa meg az IME-megoldás (.sln) fájlját.
  • A Megoldáskezelőben kattintson a jobb gombbal a megoldásra, mutasson a Hozzáadás pontra, és válassza az Új projekt lehetőséget. Megnyílik az Új projekt hozzáadása párbeszédpanel.
  • A bal oldali fastruktúra nézet vezérlőelemben keresse meg a Templates > Other Project Types > InstallShield Limited Edition (Más projekttípusok) lehetőséget.
  • A középső ablakban kattintson az InstallShield Limited Edition Project elemre.
  • A Név szövegmezőbe írja be a "SetupIME" kifejezést, és kattintson az OK gombra.
  • A Project Assistant párbeszédpanelen kattintson az Alkalmazás adatai elemre.
  • Adja meg a vállalat nevét és a többi mezőt.
  • Kattintson az Alkalmazásfájlok elemre.
  • A bal oldali panelen kattintson a jobb gombbal az [INSTALLDIR] mappára, és válassza az Új mappa lehetőséget. Nevezze el a "Beépülő modulok" mappát.
  • Kattintson a Fájlok hozzáadása elemre. Lépjen az IME DLL-hez, és adja hozzá a Beépülő modulok mappához. Ismételje meg ezt a lépést az IME szótárban.
  • Kattintson a jobb gombbal az IME DLL-re, és válassza a Tulajdonságok lehetőséget. Megnyílik a Tulajdonságok párbeszédpanel.
  • A Tulajdonságok párbeszédpanelen kattintson a COM > .NET Beállítások fülre.
  • A Regisztráció típusa csoportban válassza az Önregisztráció lehetőséget, majd kattintson az OK gombra.
  • Hozza létre a megoldást. Létrejön az IME DLL, és az InstallShield létrehoz egy setup.exe fájlt, amely lehetővé teszi a felhasználók számára az IME windowsos telepítését.

Saját telepítési élmény létrehozásához hívja meg az ITfInputProcessorProfileMgr::RegisterProfile metódust az IME telepítés közbeni regisztrálásához. Ne írjon közvetlenül beállításjegyzék-bejegyzéseket.

Ha az IME-nek közvetlenül a telepítés után használhatónak kell lennie, hívja meg az InstallLayoutOrTip parancsot , hogy adja hozzá az IME-t a felhasználó által engedélyezett beviteli módszerekhez a psz paraméter következő formátumával:

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

IME akadálymentesség

A következő konvenció megvalósítása annak érdekében, hogy a csevegőgépei megfeleljenek az akadálymentességi követelményeknek, és működjenek együtt a Narrátorsal. A jelöltlisták elérhetőségének biztosítása érdekében az IME-knak követniük kell ezt az konvenciót.

  • A konverziós jelöltek listájának UIA_AutomationIdPropertyId értéke "IME_Candidate_Window" kell legyen, míg az előrejelzési jelöltek listájának "IME_Prediction_Window" értékkel kell rendelkeznie.
  • Amikor a jelöltlista megjelenik és eltűnik, UIA_MenuOpenedEventId ésUIA_MenuClosedEventId típusú eseményeket vet fel
  • Amikor az aktuálisan kiválasztott jelölt megváltozik, a jelöltlista generál egy UIA_SelectionItem_ElementSelectedEventId eseményt. A kijelölt elemnek az UIA_SelectionItemIsSelectedPropertyId tulajdonsága IGAZ értékű kell legyen.
  • A jelöltlista minden elemének UIA_NamePropertyId a jelölt nevének kell lennie. Opcionálisan további információkat is megadhat a jelöltek egyértelműsítéséhez UIA_HelpTextPropertyId keresztül.