- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Gaming notebook topik
- TCL LCD és LED TV-k
- Fejhallgató erősítő és DAC topik
- Kompakt vízhűtés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen TV-t vegyek?
- Apple iPad 11” (A16, 2025) - a táblagépek vanília fagylaltja
- OLED monitor topic
- Google Chromecast topic
Új hozzászólás Aktív témák
-
pIIrash
tag
unit un_RMethods;
interface
uses Windows, SysUtils, Registry;
const
CurVer = 'SOFTWARE\Microsoft\Windows\CurrentVersion\';
R_UninstPrg = CurVer + 'Uninstall';
R_RUN = CurVer + 'Run';
procedure SetStartWithWindows(AppName, AppTitle: string);
procedure SetRegistryValue(RootKey: HKEY; Key, KeyName, Value, regType: string);
implementation
procedure SetRegistryValue(RootKey: HKEY; Key, KeyName, Value, regType: string);
var
Registry: TRegistry;
begin
Registry := TRegistry.Create;
with Registry do
begin
try
RootKey := RootKey;
if OpenKey(Key, False) then
begin
if regType = 'STR' then WriteString(KeyName, Value);
if regType = 'BOL' then WriteBool(KeyName, StrToBool(Value));
if regType = 'INT' then WriteInteger(KeyName, StrToInt(Value));
end;
finally
Free;
end;
end;
end;
function GetRegistryValue(RootKey: HKEY; Key, Value, regType: string): string;
var
Registry: TRegistry;
TempValue: string;
begin
Registry := TRegistry.Create;
with Registry do
begin
try
RootKey := RootKey;
if OpenKey(Key, False) then
begin
if regType = 'STR' then TempValue := Registry.ReadString(Value);
if regType = 'BOL' then TempValue := BoolToStr(ReadBool(Value));
if regType = 'INT' then TempValue := IntToStr(ReadInteger(Value));
end;
finally
Free;
end;
end;
Result := TempValue;
end;
pl: beírás:
procedure SetStartWithWindows(AppName, AppTitle: string);
begin
SetRegistryValue(HKEY_LOCAL_MACHINE, R_RUN, <Program elérési útja>, <Program neve>, 'STR');
end;
pl: kiolvasás:
InstallPath := GetRegistryValue(HKEY_LOCAL_MACHINE, SOFTWARE\<A program neve>\, A kulcs amiből olvasni akarsz);
Remélem segít!
[Szerkesztve] -
tbs
addikt
Szerintem ha csak teheted ódzkodj a regisztritől. Extrém esetben telefonon kell a hozzá nem értő júzet irányítanod egy kis hackeléshez. A regisztriben tök könnyen futhat bele jogosultsági gondokba a tudtán/tudtodon kívül, és adminként könnyebben barmolhatja szét egy klasszikus ''tüsszentős'' egérmozdulattal a windows-át.
Ini párti vagyok. Ha a %WINDIR%-be rakod, vagy a program mellé, fullpath sem kell neki, notepaddal következmények nélkül szerkesztheti.
Amúgy a delphi helpje elég jó példákat hoz. Sajnos a Delphi5 registry komponensei alapban mindig írás/olvasásra akarják a kulcsokat megnyitni, ebből adódhat probléma, figyelj rá! -
czappa
aktív tag
-
ReJim
őstag
az a jelenség (amit lol-ként jellemeztél
) az azért fordult elő, mert a delphi mindenképpen vizsgálja, ha belőle futtatod.
le lehet kapcsolni, hogy ne legyen ilyen debugg:
Tools menü ->Debugger Options -> Languages Exceptions (3-dik) fül -> Stop Delphi exceptions pipát kivesz.
ekkor ha try-except, és kivétel lesz, akkor nem fog bejönni a delphi hibajüzi, és nem száll el a progi.
(tipp: ha elszáll a programod, akkor ctrl+f2-vel időt spórolsz, azzal nullázod a progit, enm lesz ao tt a fagyás.) -
Jester01
veterán
Elõrebocsátom, hogy csak tippem van, nem értek delphihez
Szóval elõször is a try után nem kell esetleg begin-end blokk ?
Illetve ha nem használod fel az r értékét akkor valószínûleg kioptimalizálja a fordító az osztást. (Mondjuk mivel konstansok vannak, ezt illene egyébként is elkövetnie.)
Ezenkívül nem tudom van-e lehetõség delphiben mindent elkapó kivételkezelõ írására, mert egy olyat jó lenne még odatenni, hogy kiírja valójában milyen exception volt.
Új hozzászólás Aktív témák
Hirdetés
- Surface Pro 7+ i5-1135G7 16G 256GB 1 év garancia
- GYÖNYÖRŰ iPhone 13 256GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3204, 94% Akkumulátor
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB DDR5 RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: FOTC
Város: Budapest