Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
1-50718
DN
2002-09-02 15:28
2002.09.16
Работа с файлами


1-50665
KARNAGE
2002-09-04 18:20
2002.09.16
как из программы выделить все записи DbGrid?


1-50758
victor_ch
2002-09-04 10:04
2002.09.16
Проблема со вставкой даты во Freereport


14-50975
Me2
2002-08-22 11:48
2002.09.16
Подскажите, что такое сабж?


3-50641
maxim2
2002-08-27 08:10
2002.09.16
Как скопировать записи из файлов DBF(dBase3) в таблицы Paradox




   Наверх