[Megoldva] Dokumentumban lévö Makro-k védelme

Táblázatkezelő

[Megoldva] Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Kriszi » 2020. február 11., kedd 22:53

Üdvözletem Mindenkinek.

Az alábbi feladathoz kérnék segitséget:
Egy Dokumentum Lapjain lévö, általunk kitöltött Cellákat / Cellatartalmat (sokunk által ismert módon) lehet védeni.
Ezzel analóg módon lehet védeni / láthatatlanná tenni a Dokumentumunkban elhelyezett, általunk irt Makro-kat?

Köszönettel: Kriszi
Libre Office 4 Win 7
Kriszi
 
Hozzászólások: 7
Csatlakozott: 2020. február 11., kedd 22:19

Re: Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Zizi64 » 2020. február 11., kedd 23:31

Igen, lehetséges jelszavas védelmet beállítani egy makrókönyvtárhoz, de egy kicsit bonyolult.

Alapesetben a Dokumentum Standard könyvtárban létrehozott Modulokba írogatjuk a makróinkat, mert az (a teljes Standard könyvtár az összes benne foglalt Modullal együtt) mindig betöltődik a dokumentum megnyitásakor a memóriába. (Illetve a "Saját makrók" alatti Standard könyvtár Moduljaiban lévő makrók akkor töltődnek be, amikor az AOO/LO elindul.)

No, ezt/ezeket a Standard könyvtárat nem lehet jelszóval védeni. (Miért? Mert nem, és kész.)
Ellenben lehet az összes többi, általad létrehozott könyvtárakat.
Azok viszont nem töltődnek be automatikusan, azaz hiába tartalmazzák a makróidat, azokat nem éri el az AOO/LO alkalmazása addig, amíg valamilyen úton-módon azok be nem töltődnek a memóriába.
A Standard-on kívüli könyvtárakat be lehet tölteni például a Standard könyvtárba helyezett publikus (látható), és a dokumentumnak valamilyen eseményéhez rendelt makrókóddal. (Meg be lehet a könyvtár nevére történő duplakatt-tal, a Basic IDE felületén: ilyenkor kisárgul a könyvtár ikonja.)

Ilyen már sokszor csináltam, de azok nem jelszóval védett könyvtárak voltak.

Hasonló téma az angol fórumról:
https://forum.openoffice.org/en/forum/v ... =20&t=8043


...

Például az XrayTool nevű, a programozást segítő objektum-vizsgálót is a saját könyvtárából kell betölteni ahhoz, hogy működjön:

Kód: Egész kijelölése   KinyitásÖsszecsukás
Sub LoadXray

   If (Not GlobalScope.BasicLibraries.isLibraryLoaded("XrayTool")) Then
      GlobalScope.BasicLibraries.LoadLibrary("XrayTool")
   End If
end sub

Tehát ennek a kódnak a Standard könyvtárban kell lennie, onnan kell valahogyan elindítani, de az XrayTool nevű (külön telepített) könyvtárat tölti be.

Az XrayTool egyébként is nagyon hasznos eszköz, célszerű telepíteni azoknak, akik makrókat akarnak írni:
https://berma.pagesperso-orange.fr/index2.html

Valószínűleg így töltheted be a jelszóval védett könyvtáradat is - ha a jelszavas védelem ebben meg nem akadályoz... De ezt még soha nem próbáltam, ez rád vár.

Várom a visszajelzésedet!
Sok sikert!
Kovács Tibor (Win10x64Prof/W7x64P: LO6.1.6-6.2.8;
winPenPack/PortableApps: LO3.3.1-6.4.0, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3565
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Zizi64 » 2020. február 12., szerda 7:56

XrayTool könyvtár nem betöltve.png
XrayTool könyvtár nem betöltve


XrayTool könyvtár betöltve.png
XrayTool könyvtár betöltve


Ez esetben a két állapot között csak annyi történt, hogy - duplakatt-tal a könyvtár nevén - betöltődött az XrayTool könyvtár.
Tehát még kódot se használtam hozzá.
De ezt valószínűleg nem tudod megtenni egy jelszóval védett könyvtárral - a jelszó bevitele nélkül. De ezt is neked kell kipróbálnod.

Vagy töltsél fel ide egy mintafájlt. (Nem kell, hogy a védendő makróidat tartalmazza, elég egy példa Sub-ot vagy Function-t elhelyezni a dokumentumodban létrehozott - és jelszóval levédett - egyedi könyvtárban.)

Bizonyos események automatikusan betöltik a könyvtárat, amiben az eseményhez kapcsolódó makrók vannak.
A képeken látható tImeStampBackup, vagy a testFontsJTB könyvtárban lévő makró elindul, ha a (kiterjesztés telepítésekor) létrehozott ikonra, vagy menüpontra kattintunk.
Ellenben a Calc-hoz megírt saját Cella-függvények nem fognak automatikusan futni (könyvtárbetöltés nélkül).
Sok sikert!
Kovács Tibor (Win10x64Prof/W7x64P: LO6.1.6-6.2.8;
winPenPack/PortableApps: LO3.3.1-6.4.0, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3565
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Kriszi » 2020. február 12., szerda 21:49

Kedves Tibor,
köszönöm a gyors és többrétű választ. Próbálkozom a fentiekkel, ha esténként a szellemi energiám még elegendő.
Kriszi
Libre Office 4 Win 7
Kriszi
 
Hozzászólások: 7
Csatlakozott: 2020. február 11., kedd 22:19

Re: Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Zizi64 » 2020. február 13., csütörtök 8:51

Kód: Egész kijelölése   KinyitásÖsszecsukás
Sub LoadXray

   If (Not GlobalScope.BasicLibraries.isLibraryLoaded("XrayTool")) Then
      GlobalScope.BasicLibraries.LoadLibrary("XrayTool")
   End If
end sub


Ha a dokumentumból kell könyvtárat betöltened, akkor nem kell a GlobalScope direktíva.

Kód: Egész kijelölése   KinyitásÖsszecsukás
Sub LoadSampleLibrary1

   If (Not BasicLibraries.isLibraryLoaded("SampleLibrary1")) Then
      BasicLibraries.LoadLibrary("SampleLibrary1")
   End If
end sub


Ennek a kódnak a hatására betöltődik a jelszóval védett könyvtár is, de nem tudod jelszó nélkül megtekinteni és szerkeszteni a kódot. A néven történő duplakatt elsősorban szerkesztésre nyitná meg (de futni is tudna, ha már betöltődött), ezért az is csak a jelszóval működik.
Viszont a cellákban használt képletek csak akkor frissülnek fel (a "NÉV" hibaüzenet csak akkor tűnik el) csak akkor számítódnak ki újra, ha szerkeszted a képletet és ENTER-rel újra elfogadod azt. Egyéb dokumentum-frissítési parancsra F9, Ctrl-F9, stb... marad a hibaüzenet.

Próbáltam gombhoz, megnyitáskori eseményhez kapcsolni a könyvtár-betöltő makrót, de sehogy se frissülnek az abból használt képletek. Csak akkor fognak működni, ha "újra beírod azokat". Ennyire jutottam... Ez így elég kényelmetlen...

(A megnyitáskori eseményeknél töröltem az általam létrehozott a makró hivatkozásokat, csak a gombot hagytam meg a példafájlban. Próbálkozz esetleg más eseménnyel, hátha. Még akkor be kéne tölteni, mielőtt a betöltés utáni/közbeni újraszámolás megtörténik a Calc dokumentumban.)

A védett könyvtár jelszava "zizi":

Jelszavas könyvtár.ods
(13.89 KiB) 5 alkalommal.
Sok sikert!
Kovács Tibor (Win10x64Prof/W7x64P: LO6.1.6-6.2.8;
winPenPack/PortableApps: LO3.3.1-6.4.0, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3565
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Zizi64 » 2020. február 13., csütörtök 9:00

Mindez LO 6.2.8 verzióban lett tesztelve. AOO 4.1.5-ben a kóddal történő könyvtárbetöltés se látszik működni (legalábbis jelszó nélkül) - most próbáltam ki ugyanazzal a példafájllal; a hordozható AOO verziómmal megnyitva azt...
Sok sikert!
Kovács Tibor (Win10x64Prof/W7x64P: LO6.1.6-6.2.8;
winPenPack/PortableApps: LO3.3.1-6.4.0, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3565
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

[Megoldva]: Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Kriszi » 2020. február 13., csütörtök 23:40

Kedves Tibor, köszönöm a gyors választ.

Az utóbbiakat ki fogom próbálni, hogy fejlődjek: a betöltő rutin használata, a mellékelt minta.ODS, és
a cella frissítés elmaradása, amely problémát / "történéshiányt" első olvasatra nem fogam fel.
A fenti angol fórum {is} teljesen segített.
Amúgy gyorsan eredményre jutottam, mert a védett Könyvtár modulját gombra vagy eseményre kötve simán automatikusan betölti és futtatja a LO,
de / csak megtekinteni nem engedi. Ez Oké, ez {volt} logikailag az elárt. Tehát {nekem} nem kellett betöltő rutin...
Érdekesség: Új Jelszó megadását engedi a LO a régi Jelszó beírása nélkül is, de ekkor üres lappal indítja a modult, gondolom törli a korábbi Jelszóval védett makrót.
Köszönettel: Kriszi
Libre Office 4 Win 7
Kriszi
 
Hozzászólások: 7
Csatlakozott: 2020. február 11., kedd 22:19

Re: [Megoldva] Dokumentumban lévö Makro-k védelme

HozzászólásSzerző: Zizi64 » 2020. február 14., péntek 8:21

Érdekesség: Új Jelszó megadását engedi a LO a régi Jelszó beírása nélkül is, de ekkor üres lappal indítja a modult, gondolom törli a korábbi Jelszóval védett makrót.


Nálam a jelszó változtatás nem törli a makrót, valószínűleg csak akkor tenné azt, ha ezt új könyvtár létrehohozásaként (ugyanazzal a névvel) tenném.
Sok sikert!
Kovács Tibor (Win10x64Prof/W7x64P: LO6.1.6-6.2.8;
winPenPack/PortableApps: LO3.3.1-6.4.0, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3565
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest


Vissza: Calc

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég