Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.16;
Скачать: CL | DM;

Вниз

Реестр. Почему AV?   Найти похожие ветки 

 
Mazenrat   (2002-09-04 15:02) [0]

Привет. Процедура выдает AV при удалении. Где я ошибся?

procedure WriteAndDeleteAutoRunKey;
var
RK : HKEY;
Size : String;
begin
if RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"\Software\Microsoft\Windows\CurrentVersion\Run\222222222", 0, nil,
REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, RK, nil) = ERROR_SUCCESS then
begin
Size := "My Programm";
//Проверяем: есть ли параметр My Programm
if RegQueryValueEx(RK, "My Programm", nil, nil, nil, @Size) = ERROR_SUCCESS then
//Если есть - удаляем
RegDeleteValue(RK, "My Programm")
else
//Если нет - создаем
RegSetValueEx(RK, "My Programm", 0, REG_SZ, PChar(ParamStr(0)), 0);
RegCloseKey(RK);
end;
end;


 
Набережных С.   (2002-09-04 16:56) [1]


> Где я ошибся?

Здесь:
if RegQueryValueEx(RK, "My Programm", nil, nil, nil, @Size) = ERROR_SUCCESS



 
Mazenrat   (2002-09-04 17:02) [2]

Нельзя ли поконкретней?


 
Набережных С.   (2002-09-04 19:21) [3]

А нельзя ли было поконкретней написать, в какой строке АВ?


 
Ученик ©   (2002-09-04 19:35) [4]

uses
RegStr;

function ServiceManagerInstall(const DisplayName,
FilePath : string;
Install : Boolean) : Boolean;
var
Key : HKEY;
Disposition: Integer;
begin
Result := False;
if RegCreateKeyEx(HKEY_LOCAL_MACHINE, REGSTR_PATH_RUN, 0, nil,
REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, nil, Key,
@Disposition) = ERROR_SUCCESS then try
if Install then
RegSetValueEx(Key, PChar(DisplayName), 0, REG_SZ, PChar(FilePath), Length(FilePath))
else
RegDeleteValue(Key, PChar(DisplayName));
Result := True
finally
RegCloseKey(Key)
end
end;

function ServiceManagerExists(const DisplayName : string) : Boolean;
var
Key : HKey;
begin
if RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGSTR_PATH_RUN, 0, KEY_QUERY_VALUE,
Key) = ERROR_SUCCESS then try
Result := RegQueryValueEx(Key, PChar(DisplayName), nil, nil, nil,
nil) = ERROR_SUCCESS
finally
RegCloseKey(Key)
end else
Result := False
end;


 
Mazenrat   (2002-09-04 19:45) [5]

Ученику спасибо!!!!!!!!!!!!!!!!!!!!

2Набережных С.

Это твоё:

>
> Набережных С. (04.09.02 19:21)
> А нельзя ли было поконкретней написать, в какой строке АВ?


Это моё: (Куда уж конкретней.)

> Привет. Процедура выдает AV при удалении. Где я ошибся?

Для тех, кто в танке - RegDeleteValue(RK, "My Programm")



Страницы: 1 вся ветка

Текущий архив: 2002.09.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-50966
TCrash
2002-08-22 10:30
2002.09.16
Траблы с W2k и D5


3-50576
7Up
2002-08-23 10:49
2002.09.16
ODBC для Delphi (продолжение)


8-50866
SGrigory
2002-04-29 15:36
2002.09.16
Прозрачность в Win 9x


8-50871
Darts
2002-05-18 16:30
2002.09.16
Быстрый вывод графики


14-50934
France
2002-08-21 12:44
2002.09.16
Принтер выбрасывает лист