registry edit проблем

3 отговора 116 прегледа
#1

registry edit проблем

Здравейте.
искам в приложението си да отварям Уебстраници с TWebBrowser, но през proxy...
Тъй като немога да използвам Indy компонентите за тази цел( поне доколкото знам), се налага да едитвам регистъра на Windows.
Та на вапроса: Може ли някой да ми каже малко по-подробно( в смисал: код и дали е необходими добавяне на нещо в uses ) как да задам стойност на ключ от регистъра? Прочетох вече в няколко форума(на английски ) че това е начина, но небеше обяснено "как?" . Става въпрос за следните ключове:
HKEY_CURRENT_USER\Software\Mi­crosoft\Windows\CurrentVersion­\Internet
Settings\
и по-точно:
ProxyEnabled да приеме стойност 1
ProxyServer да приеме стойност IP:Port , например да приеме 195.175.37.7:80

Благодаря предварително

начинаещ съм, но всеки е започнал така
Отговор
в отговор на lceHot #2

Re: registry edit проблем

[линк]

или още по-гот - пишеш в Delphi:

tregistry

и натискаш F1 върху него

чети и дишай по-леко
Отговор
в отговор на lceHot #3

Re: registry edit проблем

Използването на TRegistry е доста сложно и опасно начинание, и затова е препоръчително да се работи с TRegIniFile (когато се работи с root key HKEY_CURRENT_USER, което при него е по подразбиране).

Отговор
в отговор на Pechenia #4

Re: registry edit проблем

мерси за линка. ето какво правя аз:
[quote="Code"]
procedure SetRegistryData(RootKey: HKEY; Key, Value: string;
RegDataType: TRegDataType; Data: variant);
var
Reg: TRegistry;
s: string;
begin
Reg := TRegistry.Create(KEY_WRITE);
try
Reg.RootKey := RootKey;
if Reg.OpenKey(Key, True) then begin
try
if RegDataType = rdUnknown then
RegDataType := Reg.GetDataType(Value);
if RegDataType = rdString then
Reg.WriteString(Value, Data)
else if RegDataType = rdExpandString then
Reg.WriteExpandString(Value, Data)
else if RegDataType = rdInteger then
Reg.WriteInteger(Value, Data)
else if RegDataType = rdBinary then begin
s := Data;
Reg.WriteBinaryData(Value, PChar(s)^, Length(s));
end else
raise Exception.Create(SysErrorMessage(ERROR_CANTWRITE));
except
Reg.CloseKey;
raise;
end;
Reg.CloseKey;
end else
raise Exception.Create(SysErrorMessage(GetLastError));
finally
Reg.Free;
end;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
SetRegistryData(HKEY_CURRENT_USER,
'\Software\Mi­crosoft\Windows\CurrentVersion­\Internet Settings',
'ProxyServer', rdString, '195.175.37.7:80');
end;




, но не се получава( търсеният ключ неможе да бъде прочетен). Някой да знае защо? Мисля че е от това rdString, но не съм сигурен. по принцип, в regedit се води REG_SZ, а ProxyEnable е REG_DWORD- . на какви типове данни отговарят те?!( Стринг, Инт, ЛонгИнт, буулеан....)

начинаещ съм, но всеки е започнал така
Отговор