HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Fájl, GUID vagy ProgID tulajdonságainak lekérdezése


Példaprogram letöltése

5912 bájt

Ha van egy objektumunk, amiről bővebb információt szeretnénk lekérdezni a Windows-tól, akkor ezt megtehetjük egy Windows API függvény segítségével. Elég, ha ismerjük pl. a fájl kiterjesztését, a GUID-ot vagy a ProgID-t (pl. „Word.Application”). Ettől kezdve megtudhatjuk a fájltípushoz rendelt programot, a fájltípus nevét, a ProgID-hez tartozó EXE nevét, stb.

A Windows API függvény neve AssocQueryString.
AssocQueryString
HRESULT AssocQueryString(
ASSOCF flags,
ASSOCSTR str,
LPCTSTR pszAssoc,
LPCTSTR pszExtra,
LPTSTR pszOut,
DWORD *pcchOut
);
Paraméterek
ASSOCF flags
A lekérdezés néhány tulajdonságát adhatjuk meg konstansok segítségével. A használható konstansok az alábbi táblázatban láthatók:
Konstans neve Érték Leírás
ASSOCF_INIT_NOREMAPCLSID 1 A CLSID értéket nem konvertálja ProgID-re.
ASSOCF_INIT_BYEXENAME 2 Ha a pwszAssoc paraméterben egy EXE nevét adtuk meg, akkor ezt a flag-et be kell állítani.
ASSOCF_OPEN_BYEXENAME 2 Azonos az előzővel.
ASSOCF_INIT_DEFAULTTOSTAR 4 Ha a gyökér kulcsban nem találta meg a kérdezett értéket, akkor megpróbálja megkeresni a * kulcs alatt.
ASSOCF_INIT_DEFAULTTOFOLDER 8 Ha a gyökér kulcsban nem találta meg a kérdezett értéket, akkor megpróbálja a Folder kulcs alatt megkeresni.
ASSOCF_NOUSERSETTINGS 16 Csak a HKEY_CLASSES_ROOT kulcs alatt keres, a HKEY_CURRENT_USER kulcsot kihagyja.
ASSOCF_NOTRUNCATE 32 Nem csonkítja meg a visszatérési értéket. Ha ez nem férne bele a bufferbe, akkor hibakódot ad vissza, valamint az érték lekérdezéséhez szükséges buffer méretet.
ASSOCF_VERIFY 64 Ellenőrzi, hogy a lekérdezett adat helyes-e. Ez a flag engedélyezi az adatok beolvasását a winchesterről. Összehasonlítja a Registry-ben és az .exe fájlban tárolt „firendly” (barátságos) nevet. Ez a flag csökkenti a lekérdezés hatékonyságát.
ASSOCF_REMAPRUNDLL 128 Normális esetben a függvény az első megadott .exe vagy .dll fájl adatait kérdezi le. Ha olyan parancssort adunk meg, amely a Runddl.exe-t futtatja, akkor ezzel a flag-gel megadhatjuk, hogy a Rundll-t hagyja ki.
ASSOCF_NOFIXUPS 256 Nem javítja a Registry bejegyzéseit, például akkor, ha az .exe-ben és a Registry-ben lévő friendly név nem egyezik.
ASSOCF_IGNOREBASECLASS 512 Nem veszi figyelembe a BaseClass értéket.
ASSOCSTR str
A lekérdezett adat típusát adhatjuk meg ebben a paraméterben. A lehetséges értékek a következők lehetnek:
Konstans Érték Jelentés
ASSOCSTR_COMMAND 1 Shell parancs-sztring
ASSOCSTR_EXECUTABLE 2 futtatható Shell parancs
ASSOCSTR_FRIENDLYDOCNAME 3 a dokumentum típusának „barátságos” (friendly) neve
ASSOCSTR_FRIENDLYAPPNAME 4 a futtatható fájl barátságos neve
ASSOCSTR_NOOPEN 5 átlépi az open kulcs alatt lévő információkat
ASSOCSTR_SHELLNEWVALUE 6 a ShellNew kulcs alatt is „körülnéz”
ASSOCSTR_DDECOMMAND 7 DDE parancs minta (pl. „[open("%1")]”).
ASSOCSTR_DDEIFEXEC 8 DDCOMMAND process létrehozásához
ASSOCSTR_DDEAPPLICATION 9 alkalmazás neve DDE formában
ASSOCSTR_DDETOPIC 10 tárgy név DDE formában
LPCTSTR pszAssoc
Pointer egy #0 karakterrel lezárt sztringre, ami meghatározza a gyökér kulcsot. A sztring az alábbi csoportok egyikébe tartozhat:
Csoport Leírás
Fájlnév kiterjesztés Például .txt, .doc, stb. A ponttal együtt kell megadni!
CLSID CLSID GUID szabványos „{GUID}” formátumban.
ProgID ProgID, mint például a „Word.Application”.
Futtatható parancs Egy alkalmazás .exe fájljának neve. Ha ezt használjuk, akkor az ASSOCF_OPEN_BYEXENAME flag-et be kell állítanunk a flags paraméterben.
LPCTSTR pszExtra
Opcionális sztring paraméter, amelyben további adatokat adhatunk meg a lekérdezéshez (pl. az „open” shell szó).
LPTSTR pszOut
Ebben a paraméterben kapjuk meg a lekérdezett adatot.
DWORD *pcchOut
Ebben a paraméterben kapjuk meg a kimeneti bufferbe (pcchOut) írt karakterek számát.
Visszatérési érték
A visszatérési érték S_OK, ha a lekérdezés sikerült, E_POINTER, ha a buffer mérete túl kicsi, és OLE hibakód, ha más hiba történt.

Cikksorozat

#IDKategóriaCikk címeSorozat
1018DelphiVonalkód készítő komponens1. rész
1028DelphiVonalkód nyomtatása a QuickReport-al2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 74. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |