HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

DLL regisztráció egy kattintással


Példaprogram letöltése

3678 bájt

Ha egy ActiveX DLL-t regisztráltatni akarunk, akkor ehhez a RegSrv32.exe programot kell használnunk, vagy a Delphi megfelelő menüpontjait választanunk. Ebben a példában egy olyan programot készítettünk, amely minden DLL kiterjesztésű fájlhoz hozzárendel két új menüpontot a Windows Intézőjének azon menüjéhez, amely a DLL-re jobb gombbal történt kattintás után jön elő. E két menüponttal könnyedén lehet regisztráltatni ill. a regisztrációt megszüntetni. Továbbá létrehozunk egy "Megnyitás …" menüpontot is, amivel a kiválasztott fájlba tudunk betekinteni.
Gyorsmenü létrehozásához, mint mindig, most is a registry adatbázisban kell ügyködnünk. Mivel ebben a programban nincs szükségünk ablakra, ezért egy egyszerű konzol alkalmazást készítettünk. Így a mellékelt példa egyszeri futtatása után már kattinthatunk is jobb gombbal bármely DLL-re.
var reg: TRegIniFile;
    WinSysDir:Array[0..255] of char;
    RegCmd, UnregCmd, ViewCmd:string;
begin
Első lépésben lekérdezzük a Windows System könyvtárának elérési útvonalát, amit a GetSystemDirectory függvénnyel tehetünk meg. Erre azért van szükség, mert ebben a könyvtárban van a RegSrv32.exe fájl.
    GetSystemDirectory(WinSysDir, 256);
Ha ez megvan, akkor a ViewCmd, RegCmd és az UnregCmd változókban létrehozzuk az egyes funkciókhoz tartozó parancssorokat.
    ViewCmd:=WinSysDir+'\VIEWERS\QUIKVIEW.EXE';
    RegCmd:=WinSysDir+'\REGSVR32.EXE %1';
    UnregCmd:=WinSysDir+'\REGSVR32.EXE /u %1';
A registry-ben való matatáshoz most a TRegIniFile osztályt fogjuk alkalmazni.
    reg:=TRegIniFile.Create('');

    with reg do
    begin
        RootKey:=HKEY_CLASSES_ROOT;
Először a "Megnyitás" parancsot adjuk hozzá a gyorsmenühöz. Ehhez ellenőrizzük, hogy a QuikView.EXE program telepítve van-e. Ezzel a programmal sok minden más mellett a dll fájlokba is bele lehet tekinteni.
Ha ez megvan akkor létrehozzuk a "Register" és az "Unregister" menüpontokat is a megfelelő parancsok hozzáadásával.
        if FileExists(ViewCmd) then
        begin
            WriteString('dllfile\Shell\Open', '', 'Megnyitás ...');
            WriteString('dllfile\Shell\Open\command', '', ViewCmd+' %1');
        end;
        WriteString('dllfile\Shell\Register','','Register');
        WriteString('dllfile\Shell\Register\command','', RegCmd);
        WriteString('dllfile\Shell\Unregister','','Unregister');
        WriteString('dllfile\Shell\Unregister\command','', UnregCmd);
        Free;
    end;
Ha mindennel végeztünk, akkor üzenet, és kilépés.
    ShowMessage('Kész!');
end.


Cikksorozat

#IDKategóriaCikk címeSorozat
3333WindowsNet Shell parancsok1. rész
3367WindowsNet Shell parancsok2. rész
3396WindowsNet Shell parancsok3. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 213. 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 |