
Ukladani dat v Delphi
Dobry den.
Da se v Delphi uložit nějake data přimo do programu, třeba na konec.
Nechci nic cpat do registru ani nějaky ini soubor.
Nechci toho ukladat moc. Jen jedno heslo.
Dobry den.
Da se v Delphi uložit nějake data přimo do programu, třeba na konec.
Nechci nic cpat do registru ani nějaky ini soubor.
Nechci toho ukladat moc. Jen jedno heslo.
Zpět do poradny Odpovědět na původní otázku Nahoru
Jediná rozumná možnost je resource. Delphi obsahuje funkce, na práci s resource - TResourceStream() apod.
Ale musíš počítat s následujícím:
1. některým antivirovým programům se to nebude líbit
2. pokud bude na Windows 7 program umístěn v program files, máš smůlu, protože program tam nemůže zapisovat ani sám do sebe
Registry (HKCU) nebo INI soubor v profilu uživatele jsou rozumnější řešení
Vytvor si vlastný reťazec(string) ako resourcestring, potom použi FindResource, LoadResource a UpdateResource funkcie.
Kukni na Win32 Help. (alebo TResourceStream - VCL help)
Děkují oboum za pomoc, ale pokud mi to nepojede v těch W7 v program files tak to nema vyznam.
Od Vindows Vista program nemůže zapisovat do systémových adresářů (Program files, Windows)
Tam může zapisovat pouze instalační program. Takže tam "natvrdo" neukládej žádné nastavení - soubory apod.
Heslo můžeš uložit ve formě MD5 hash - jednosměrné kódování. Když uživatel zadá heslo ve formuláři, ty spočítáš hash a porovnáš s uloženým. Je to bezpečnější.
Pokud je ale aplikace spustena jako administratorska a je vypnute UAC, tak to myslim funguje. Jinymi slovy aplikace pak muze zapisovat do Program files
Já jsem psal o normálním stavu, kdy programátor píše normální program.
Program, který pro svůj běh potřebuje vypnout UAC a spouštět s admin oprávněním asi není to, co bych v počítači chtěl
Jinak stačí spustit program jako admin, nemusíš vypínat UAC.
Ale jak si spustí program člověk, který admin oprávnění nemá?
Jak to budeš řešit ve firemní síti nebo ve školní učebně? Dáš všem admin oprávnění? Pak ti přeju příjemnou práci, protože nebudeš dělat nic jiného, než dávat do pořádku ten bordel, který jsi takovým nastavením způsobil.
Bohužel píší programy, které nejsou normální
.
Pokud si ten program napíšu od začátku až po konec sám, tak nevím proč by mi mělo vadit, že běží s admin právy, když dělá to co má dělat. Jelikož jsem ho vlastnoručně naprogramoval, tak bych asi nejlépe ze všech měl vědět, co daný program dělá. A pak takového programu se nemusím vůbec bát, ani když mi na něj zařve antivir
S tímto máš asi pravdu, už jsem to moc překombinoval.
Běžný uživatel asi horko těžko. Tak instalačku udělám do nějakého spešl adresáře (např.:Totalcomnader se také neinstaluje do program files).
Nikomu nedám admin oprávnění. Ve vlastnostech bych zatrhnul spouštění programu s admin právy.
![[http://pc.poradna.net/file/view/9583-screenshot-21 2-jpg]](/file/view/9583-screenshot-212-jpg)
A jakmile se nekdo pokusi program spustit, bude to po nich chtit jmeno a heslo adminitratora
TotalCommander nema problem s umistenim v program files. nastaveni umi ukladat do registru, do INI souboru a ten muze byt klidne umisteny v profilu.
Tohle si opravdu muzes delat u programu, ktere si pises pro sebe. Ale pokud pises neco obecneho, co budou pouzivat bezni uzivatele, mel bys dodrzovat doporuceni autora OS o tom, jak by takovy program mel byt napsany a jak by se mel chovat.
to mas asi pravdu, nejak jsem si to neuvedomil
S tim TotalCommander jsem myslel, ze kdyz pouze odklikas instalaci, tak se to neinstaluje do Program files. (Pochopitelne v nastaveni te instalace to jde zmenit).
Souhlasim s tebou a bohuzel nevim z popisu tazatele, zdali program mel byt vyhradne urcen pro nej, a nebo pro sirsi verejnost.
ani do C:
, což je na prd, když člověk testuje nějakou aplikaci, tak tam rve co nejkratší cesty, jednak je to nejrychlejší a druhak alespon neudělí překlep - všechny mé programy při testování čtou/zapisoujou do nějakého rootoveského adresáře disku.
preco netestujes programy v Users\ (kde mas mat aj projekt a tam sa aj kompiluje) ? Potom mozes zapisovat (nejake testovacie logy) do zlozky programu
Protoze se tam clovek musi proklikavat - nemyslim testing jako takovy, ale ted chtel nekdo po mne transformaci CVS souboru - tak si dam logicky do C:, kdyz je ukládám ne? Prece se nebudu proklikavat někam hluboko do adresarove struktury a jeste riskovat, ze pak udelam preklep v ceste. V ramci uspor casu vsechno patri na plochu ci do root disku adrearu, tak zni me pravidlo - ackoliv Ledni Brtnik vyleti z kuze asi si to precte :D i kdyz si myslim, ze uz to vi
, trošku ho poškádlím, že jezdím pod rootem na linuxu..
Ja nic neklikam. TC (ktory je stale spusteny takze len alt-tab), Ctrl-D
Tohle naopak chvalim. V root systemovem adresari nema zadny bordel co delat.
Pokud chces kratke cesty, udelej si na C:\ adreas, treba C:\A\ a do nej si to vse strkej. Logy zapisuj do adresare programu a nebudes mit problem.
Ano, to dělám - bohužel. Alternativně to strkám nalespon na F: - flešku...