Megosztás a következőn keresztül:


Alkalmazásregisztráció

Ez a témakör azt ismerteti, hogy az alkalmazások hogyan tehetnek közzé olyan információkat magukról, amelyek bizonyos forgatókönyvek engedélyezéséhez szükségesek. Ide tartoznak az alkalmazás megkereséséhez szükséges információk, az alkalmazás által támogatott műveletek és az alkalmazás által kezelhető fájltípusok.

Ez a témakör a következőképpen van rendszerezve:

Jegyzet

Az alkalmazások regisztrálhatók a Programhozzáférés és a számítógép alapértelmezésének beállítása (SPAD) és az alapértelmezett programok (SYDP) vezérlőpult-alkalmazásokban is. Az SPAD- és SYDP-alkalmazásregisztrációról további információt Fájltársítások és alapértelmezett programok, valamint A programhozzáférés és a számítógép alapértelmezett beállításainak (SPAD) beállításacímű cikkben talál.

Végrehajtható alkalmazás megkeresése

Ha a rendszer meghívja a ShellExecuteEx függvényt egy végrehajtható fájl nevével a lpFile paraméterben, a függvény több helyen is megkeresi a fájlt. Javasoljuk, hogy regisztrálja az alkalmazást a alkalmazás elérési útjai beállításjegyzék-alkulcsban. Így elkerülhető, hogy az alkalmazások módosítsák a rendszer PATH környezeti változóit.

A fájl a következő helyeken kérve van:

  • Az aktuális munkakönyvtár.
  • A Windows könyvtár csak (nem keresnek alkönyvtárakat).
  • A Windows\System32 könyvtár.
  • A PATH környezeti változóban felsorolt könyvtárak.
  • Ajánlott: HKEY_LOCAL_MACHINE\Szoftveres\Microsoft\Windows\CurrentVersion\alkalmazás elérési útjai

Alkalmazások regisztrálása

Az alkalmazás elérési útjai és alkalmazások beállításjegyzék-alkulcsok egyaránt a rendszer viselkedésének regisztrálására és szabályozására szolgálnak az alkalmazások nevében. Az alkalmazás elérési útjai alkulcs az előnyben részesített hely.

Az Alkalmazás elérési útja alkulcs használata

A Windows 7-ben és újabb verziókban erősen javasoljuk, hogy a gépek helyett felhasználónként telepítse az alkalmazásokat. A felhasználónként telepített alkalmazások regisztrálhatók HKEY_CURRENT_USER\Microsoft\Microsoft\Windows\CurrentVersion\alkalmazáselérési utakalatt. A számítógép összes felhasználója számára telepített alkalmazás regisztrálható HKEY_LOCAL_MACHINE\Szoftver\Microsoft\Windows\CurrentVersion\alkalmazáselérési utakalatt.

Az alkalmazásútvonalak alatt található bejegyzések elsősorban a következő célokra használhatók:

  • Az alkalmazás végrehajtható fájlnevének leképezése a fájl teljes elérési útjára.
  • A PATH környezeti változóra vonatkozó adatok előre beírása alkalmazásonként, folyamatonként.

Ha alkalmazáselérési utak alkulcsának neve megegyezik a fájlnévvel, a Rendszerhéj két műveletet hajt végre:

  • A fájl teljes elérési útja az (alapértelmezett) bejegyzés.
  • Az alkulcs Elérési út bejegyzése előre be van állítva a folyamat PATH környezeti változójára. Ha ez nem kötelező, az elérési út értéke elhagyható.

A következő lehetséges problémákat kell figyelembe venni:

  • A Shell a parancssor hosszát * 2 karakter MAX_PATH korlátozza. Ha sok fájl szerepel a beállításjegyzék bejegyzései között, vagy az elérési útjaik hosszúak, a listában később a fájlnevek elveszhetnek, mivel a parancssor csonkolt.
  • Egyes alkalmazások nem fogadnak el több fájlnevet a parancssorban.
  • Egyes alkalmazások, amelyek több fájlnevet is elfogadnak, nem ismerik fel a Rendszerhéj által biztosított formátumot. A Shell idézőjeles sztringként adja meg a paraméterlistát, de egyes alkalmazásokhoz idézőjelek nélkül is szükség lehet sztringekre.
  • Nem minden húzható elem része a fájlrendszernek; például nyomtatók. Ezek az elemek nem rendelkeznek szabványos Win32-elérési útokkal, így nem lehet értelmes lpParameters értéket adni a ShellExecuteEx.

A DropTarget bejegyzés használata elkerüli ezeket a lehetséges problémákat azáltal, hogy hozzáférést biztosít az összes vágólapformátumhoz, beleértve a CFSTR_SHELLIDLIST (hosszú fájllisták esetén) és a CFSTR_FILECONTENTS (nem fájlrendszerbeli objektumok esetén).

Az alkalmazások viselkedésének regisztrálása és szabályozása az Alkalmazáselérési útvonalak alkulcskal:

  1. Adjon hozzá egy, a végrehajtható fájl nevével megegyező nevű alkulcsot az alkalmazás elérési útjai alkulcshoz, ahogyan az a következő beállításjegyzék-bejegyzésben látható.

    HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
       SOFTWARE
          Microsoft
             Windows
                CurrentVersion
                   App Paths
                      file.exe
                         (Default)
                         DontUseDesktopChangeRouter
                         DropTarget
                         Path
                         UseUrl
    
  2. Az alkalmazás elérési útjai alkulcs bejegyzéseinek részleteiért tekintse meg az alábbi táblázatot.

Beállításjegyzék-bejegyzés Részletek
(Alapértelmezett) Az alkalmazás teljes elérési útja. Az (Alapértelmezett) bejegyzésben megadott alkalmazásnév .exe kiterjesztéssel vagy anélkül is megadható. Ha szükséges, a ShellExecuteEx függvény hozzáadja a bővítményt alkalmazáselérési utak alkulcs keresésekor. A bejegyzés REG_SZ típusú.
DontUseDesktopChangeRouter A hibakereső alkalmazások esetében kötelező, hogy elkerülje a fájl párbeszédpaneljének holtpontjait a Windows Explorer-folyamat hibakeresése során. A DontUseDesktopChangeRouter bejegyzés beállítása azonban a változásértesítések kissé kevésbé hatékony kezelését eredményezi. A bejegyzés REG_DWORD típusú, és az érték 0x1.
DropTarget Osztályazonosító (CLSID). A DropTarget-bejegyzés egy objektum (általában helyi kiszolgáló, nem pedig folyamaton belüli kiszolgáló) CLSID azonosítóját tartalmazza, amely implementálja IDropTarget. Alapértelmezés szerint, ha a drop target végrehajtható fájl, és nincs megadva DropTarget érték, a Rendszerhéj parancssori paraméterré alakítja az elvetett fájlok listáját, és átadja ShellExecuteExlpParameters.
Ösvény Egy sztringet (pontosvesszővel tagolt címtárlista formájában) biztosít a PATH környezeti változóhoz az alkalmazás indításakor a ShellExecuteEx meghívásával. Ez a .exeteljes elérési útja. Ez REG_SZ. A Windows 7 és újabb típus lehet REG_EXPAND_SZ, és gyakran REG_EXPAND_SZ %ProgramFiles%. Megjegyzés: A Shell által felismert (Alapértelmezett), Elérési út és DropTarget bejegyzések mellett az alkalmazások egyéni értékeket is hozzáadhatnak a végrehajtható fájl alkalmazás elérési útjaihoz alkulcsához. Arra ösztönözzük az alkalmazásfejlesztőket, hogy az alkalmazás elérési útjai alkulcsot használva adjanak alkalmazásspecifikus elérési utat ahelyett, hogy a globális rendszerútvonalat adnánk hozzá.
Támogatottprotocolok Létrehoz egy sztringet, amely egy adott kulcs URL-protokollsémákat tartalmaz. Ez több beállításjegyzék-értéket is tartalmazhat, amelyek jelzik, hogy mely sémák támogatottak. Ez a sztring séma1:scheme2formátumát követi. Ha ez a lista nem üres, fájl: lesz hozzáadva a sztringhez. Ez a protokoll implicit módon támogatott SupportedProtocols definiálásakor.
UseUrl Azt jelzi, hogy az alkalmazás elfogadhat egy URL-címet (fájlnév helyett) a parancssorban. Azoknak az alkalmazásoknak, amelyek közvetlenül az internetről nyithatnak meg dokumentumokat, például webböngészőket és média lejátszókat, be kell állítaniuk ezt a bejegyzést.
Amikor a ShellExecuteEx függvény elindít egy alkalmazást, és a UseUrl=1 érték nincs beállítva, a ShellExecuteEx letölti a dokumentumot egy helyi fájlba, és meghívja a kezelőt a helyi példányon.
Ha például az alkalmazás rendelkezik ezzel a bejegyzéskészlettel, és egy felhasználó a jobb gombbal egy webkiszolgálón tárolt fájlra kattint, a Megnyitás parancs elérhetővé válik. Ha nem, a felhasználónak le kell töltenie a fájlt, és meg kell nyitnia a helyi példányt.
A UseUrl bejegyzés REG_DWORD típusú, az érték pedig 0x1.
A Windows Vista és korábbi verziókban ez a bejegyzés azt jelezte, hogy az URL-címet át kell adni az alkalmazásnak egy helyi fájlnévvel együtt, amikor a ShellExecuteEx-en keresztül hívják meg. A Windows 7-ben azt jelzi, hogy az alkalmazás képes megérteni a neki átadott HTTP- vagy HTTPS-URL-címeket anélkül, hogy a gyorsítótárfájl nevét is meg kellene adnia. Ez a beállításkulcs a SupportedProtocols kulccsal van társítva.

Az Alkalmazások alkulcs használata

A beállításjegyzék-bejegyzések HKEY_CLASSES_ROOT\Alkalmazások\ApplicationName.exe alkulcs alá való felvételével az alkalmazások az alábbi táblázatban látható alkalmazásspecifikus információkat adhatják meg.

Beállításjegyzék-bejegyzés Leírás
shell\verb Megadja az alkalmazás OpenWith-ből való meghívásának igemetódusát. Az itt megadott igedefiníció nélkül a rendszer feltételezi, hogy az alkalmazás támogatja CreateProcess, és átadja a fájlnevet a parancssorban. Ez a funkció az összes igemetódusra vonatkozik, beleértve a DropTarget, az ExecuteCommand és a Dynamic Data Exchange (DDE) metódusokat.
DefaultIcon Lehetővé teszi, hogy az alkalmazás az .exe fájlban tárolt első ikon helyett egy adott ikont adjon meg az alkalmazásnak.
FriendlyAppName Lehetővé teszi, hogy egy alkalmazás honosítható neve jelenjen meg ahelyett, hogy csak a megjelenő verzióinformációk jelennek meg, ami nem feltétlenül honosítható. A társítási lekérdezés ASSOCSTR beolvassa ezt a beállításjegyzék-bejegyzésértéket, és visszalép a FileDescription név használatára a verzióinformációkban. Ha ez a név hiányzik, a társítás lekérdezése alapértelmezés szerint a fájl megjelenítendő nevére kerül. Az alkalmazásoknak ASSOCSTR_FRIENDLYAPPNAME kell használniuk ezeket az információkat a megfelelő viselkedés eléréséhez.
Támogatotttípusok Az alkalmazás által támogatott fájltípusok listája. Ezzel lehetővé teszi, hogy az alkalmazás szerepeljen a Megnyitás párbeszédpanel kaszkádolt menüjében.
NoOpenWith Azt jelzi, hogy nincs megadva alkalmazás a fájltípus megnyitásához. Vegye figyelembe, hogy ha egy OpenWithProgIDs alkulcs fájltípus szerint van beállítva egy alkalmazáshoz, és maga a ProgID alkulcs nem rendelkezik NoOpenWith bejegyzéssel, akkor az alkalmazás akkor is megjelenik az ajánlott vagy elérhető alkalmazások listájában, ha megadta a NoOpenWith bejegyzést. További információ: Alkalmazás belefoglalása a Megnyitás párbeszédpanelen és Alkalmazás kizárása a Megnyitás párbeszédpanelen.
IsHostApp Azt jelzi, hogy a folyamat egy gazdagépfolyamat, például Rundll32.exe vagy Dllhost.exe, és nem ajánlott figyelembe venni Start menü rögzítését vagy felvételét a leggyakrabban használt (MFU) listába. Ha nem null argumentumlistát vagy explicit alkalmazásfelhasználói modellazonosítót (AppUserModelIDs)tartalmazó parancsikonnal indítja el, a folyamat rögzíthető (ez a parancsikon). Az ilyen billentyűparancsok az MFU-listában való részvételre jelölt parancsikonok.
NoStartPage Azt jelzi, hogy az alkalmazás végrehajtható és billentyűparancsait ki kell zárni a Start menüből, valamint a rögzítésből vagy az MFU-listába való felvételből. Ez a bejegyzés általában a rendszereszközök, a telepítők és az eltávolítók, valamint az olvasási fájlok kizárására szolgál.
UseExecutableForTaskbarGroupIcon A tálcán a végrehajtható fájl alapértelmezett ikonja jelenik meg, ha nincs rögzíthető parancsikon ehhez az alkalmazáshoz, és nem az elsőként észlelt ablak ikonja.
TaskbarGroupIcon Megadja a tálca ikon felülbírálásához használt ikont. Az ablak ikont általában a tálcához használják. A TaskbarGroupIcon bejegyzés beállításával a rendszer ehelyett az alkalmazás .exe ikont használja.

Példák

A HKEY_CLASSES_ROOT\Alkalmazások\ApplicationName.exe alkulcson keresztüli alkalmazásregisztrációk néhány példája a következő. Minden beállításjegyzék-bejegyzés értéke REG_SZ típusú, kivéve DefaultIcon, amely REG_EXPAND_SZ típusú.

HKEY_CLASSES_ROOT
   Applications
      wordpad.exe
         FriendlyAppName = @%SystemRoot%\System32\shell32.dll,-22069
HKEY_CLASSES_ROOT
   Applications
      wmplayer.exe
         SupportedTypes
            .3gp2
HKEY_CLASSES_ROOT
   Applications
      wmplayer.exe
         DefaultIcon
            (Default) = %SystemRoot%\system32\wmploc.dll,-730
HKEY_CLASSES_ROOT
   Applications
      WScript.exe
         NoOpenWith
HKEY_CLASSES_ROOT
   Applications
      photoviewer.dll
         shell
            open
               DropTarget
                  Clsid = {FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}
HKEY_CLASSES_ROOT
   Applications
      mspaint.exe
         SupportedTypes
            .bmp
            .dib
            .rle
            .jpg
            .jpeg
            .jpe
            .jfif
            .gif
            .emf
            .wmf
            .tif
            .tiff
            .png
            .ico

Igék és egyéb fájltársítási információk regisztrálása

A SystemFileAssociations HKEY_CLASSES_ROOT\alatt regisztrált alkulcsok lehetővé teszik a Shell számára, hogy meghatározza a fájltípusok attribútumainak alapértelmezett viselkedését, és engedélyezze a megosztott fájltársításokat. Amikor a felhasználók módosítják egy fájltípus alapértelmezett alkalmazását, az új alapértelmezett alkalmazás ProgID azonosítója elsőbbséget élvez az igék és más társítási információk megadásakor. Ennek a prioritásnak az az oka, hogy ez az első bejegyzés a társítási tömbben. Ha az alapértelmezett program módosul, az előző ProgID adatai már nem érhetők el.

Ha proaktív módon szeretné kezelni az alapértelmezett programok módosításának következményeit, a HKEY_CLASSES_ROOT\SystemFileAssociations használatával regisztrálhatja az igéket és más társítási információkat. A társítási tömb ProgID azonosítóját követő helyük miatt ezek a regisztrációk alacsonyabb prioritást élveznek. Ezek a SystemFileAssociationsregistrations akkor is stabilak, ha a felhasználók módosítják az alapértelmezett programokat, és helyet biztosítanak a másodlagos parancsok regisztrálásához, amelyek mindig elérhetők lesznek egy adott fájltípushoz. Egy beállításjegyzék-példát a jelen témakör későbbi részében Észlelt típus regisztrálása című témakörben talál.

Az alábbi beállításjegyzék-példa bemutatja, mi történik, ha a felhasználó a Vezérlőpulton futtatja az Alapértelmezett programok elemet, hogy a .mp3 fájlok alapértelmezett értékét App2ProgID-ra módosítsa. Az alapértelmezett beállítás módosítása után a Verb1 már nem érhető el, és a Verb2 lesz az alapértelmezett.

HKEY_CLASSES_ROOT
   .mp3
      (Default) = App1ProgID
HKEY_CLASSES_ROOT
   App1ProgID
      shell
         Verb1
HKEY_CLASSES_ROOT
   App2ProgID
      shell
         Verb2

Észlelt típus regisztrálása

Az észlelt típusok beállításjegyzék-értékei a HKEY_CLASSES_ROOT\SystemFileAssociations beállításkulcs alkulcsaként vannak definiálva. Az észlelt típus például szöveg a következőképpen van regisztrálva:

HKEY_CLASSES_ROOT
   SystemFileAssociations
      text
         shell
            edit
               command
                  (Default) = "%SystemRoot%\system32\NOTEPAD.EXE" "%1"
            open
               command
                  (Default) = "%SystemRoot%\system32\NOTEPAD.EXE" "%1"

A fájltípus érzékelt típusát jelzi, ha a fájltípus alkulcsában felvesz egy Észlelt típus értéket. A PerceivedType érték a HKEY_CLASSES_ROOT\SystemFileAssociations beállításjegyzék-alkulcsban regisztrált észlelt típus nevére van beállítva, ahogyan az az előző beállításjegyzék-példában is látható. Ha úgy szeretné deklarálni .cpp fájlokat, hogy "szöveg" típusúak, például adja hozzá a következő beállításjegyzék-bejegyzést:

HKEY_CLASSES_ROOT
   .cpp
      PerceivedType = text

fájltípusok

Fájltársítások működése

tartalomnézet fájltípus vagy kind szerint

Fájltípus-ellenőrző

fájltípus-kezelők

programozott azonosítók

észlelt típusok

társítástömbök