![]() |
|
|
#1
|
|||
|
|||
|
подскажите где ошибка, что не указал?
Код:
procedure CreateKeyRun;
var
key:HKEY;
begin
RegOpenKey(HKEY_CURRENT_USER, PChar('SOFTWARE\MyProgmarINI'), Key);
RegSetValueEx(key,'FileCode',0,REG_SZ,PChar('1'),lstrlen(PChar('1'))+1);
RegCloseKey(key);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateKeyRun;
end;
Ключ не создается хотя при копиляции все нормально, и ошибок при работе не выдает. |
|
#2
|
||||
|
||||
|
RegOpenKey лишь открывает существующий подраздел, если его нет, он не создаётся. Используйте RegCreateKey
|
|
#3
|
|||
|
|||
|
а как создать ключ DWORD?
Код:
RegSetValueEx(Key,NameKey,0,REG_SZ,PChar(Value),lstrlen(PChar(Value))+length(Value)); Код выше создает REG_SZ, я пробывал заменить REG_DWORD, но не подходит. |
|
#4
|
||||
|
||||
|
Код:
RegSetValue(Key, NameKey, REG_DWORD, @Value, SizeOf(Cardinal)); |
|
#5
|
|||
|
|||
|
пишу следующее:
Код:
procedure CreateKeyRun; var Key:HKEY; Value: String; begin RegCreateKeyEx(HKEY_CURRENT_USER,'Software\MyProgramINI',0,nil,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,Nil,Key,nil); RegSetValueEx(key,'FileCode',0,REG_DWORD,@Value,SizeOf(Cardinal)); RegCloseKey(Key); end; нузно значение 1 а он постоянно пишет 0 |
|
#6
|
||||
|
||||
|
Вы ведь хотите DWORD записать, а суёте туда стринг - в скобках уже тип данных указан
|
|
#7
|
|||
|
|||
|
я вас не понял, причем тут тип он мне вместо 1 вписывает 0, даже если его не указывать, а если и указать то ересь пишет какую то.
|
|
#8
|
||||
|
||||
|
Код:
procedure CreateKeyRun; var Key:HKEY; Value: Cardinal; begin Value:= 1; RegCreateKeyEx(HKEY_CURRENT_USER,'Software\MyProgramINI',0,nil,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,Nil,Key,nil); RegSetValueEx(key,'FileCode',0,REG_DWORD,@Value,SizeOf(Cardinal)); RegCloseKey(Key); end; |