Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.98/43: Рейтинг темы: голосов - 43, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22

Вытянуть значение из реестра

03.11.2013, 20:23. Показов 9901. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет. обращаюсь к знающим делфи кодерам.
в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\Remote Manipulator System в параметре Options хранится id RMS сервера.
А я вот хочу вытянуть его с помощью делфи и вставить в edit. Помогите плиииз
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2013, 20:23
Ответы с готовыми решениями:

Как вытянуть значение свойства динамически созданного компонента при клике на нем?
Здравствуйте, товарищи программисты! Возникла проблема, которую никак не могу разрешить сам, помогите, пожалуйста. Есть форма, на...

вытянуть значение из БД
Есть таблица Книги, в которой есть Название и Количество При нажатии на кнопку надо по названию из TextBox записать количество в Label. ...

Вытянуть значение из строки
Приветствую всех. Есть строка {"acces_token" : "token" ,"expires_in":0,"user_id":id} Нужно вытянуть значение , в слове token. Там...

48
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
05.11.2013, 18:12  [ТС]
Студворк — интернет-сервис помощи студентам
ни один из вышеуказанных кодов не работает...
0
14 / 14 / 2
Регистрация: 22.03.2012
Сообщений: 95
05.11.2013, 18:28
Цитата Сообщение от esmere Посмотреть сообщение
ни один из вышеуказанных кодов не работает...
может вы все таки покажете как вы используете код?
ДА и вы пытались прочитать данные из другого ключа?
0
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
06.11.2013, 09:08  [ТС]
Вот:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Registry, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
    buf : array[0..4] of byte;
    reg : TRegistry;
    i,sz : integer;
    s : string;
  begin
    reg:=TRegistry.Create;
    reg.RootKey:=HKEY_LOCAL_MACHINE;
    reg.OpenKey('SYSTEM\Remote Manipulator System\v4\Server\Parameters', true);
    reg.ReadBinaryData('Options',buf,5);
      for i :=0 to 4 do begin
      showmessage( AnsiChar(buf[i]));
        s:=s+AnsiChar(buf[i]);
      end;
    Button1.Caption:=s;
    reg.CloseKey;
    reg.Free;
 
end;
 
end.
Да, пробовал пример с другим параметром. Рядом с этим параметром есть параметр Pwd. С ним отлично работает.
0
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
06.11.2013, 10:28
Цитата Сообщение от esmere Посмотреть сообщение
AnsiChar(buf[i])
Это что? Какой смысл в такой визуализации двоичных данных?
0
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
06.11.2013, 11:14  [ТС]
Цитата Сообщение от northener Посмотреть сообщение
Это что? Какой смысл в такой визуализации двоичных данных?
Я никакого понятия не имею об этом коде. То, что мне предположили делать, я делаю.
0
14 / 14 / 2
Регистрация: 22.03.2012
Сообщений: 95
06.11.2013, 14:37
Delphi
1
2
3
4
5
6
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\Remote Manipulator System\v4\Server\Parameters', true);
SHOWMESSAGE(inttostr(reg.GetDataSize('Options')));
reg.CloseKey;
reg.Free;
Чему равно?
Проверяй открывает ли ключ
Delphi
1
2
if Reg.OpenKey('SYSTEM\2Remote Manipulator System\v4\Server\Parameters', false) then showmessage('îòêðûò')
else   ShowMessage('íå ìîãó îòêðûòü') ;
0
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
06.11.2013, 17:27
Цитата Сообщение от esmere Посмотреть сообщение
Я никакого понятия не имею об этом коде.
Тогда как определяешь что он не работает?
0
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
06.11.2013, 19:26  [ТС]
Цитата Сообщение от Maincore Посмотреть сообщение
Delphi
1
2
3
4
5
6
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\Remote Manipulator System\v4\Server\Parameters', true);
SHOWMESSAGE(inttostr(reg.GetDataSize('Options')));
reg.CloseKey;
reg.Free;
Чему равно?
Проверяй открывает ли ключ
Delphi
1
2
if Reg.OpenKey('SYSTEM\2Remote Manipulator System\v4\Server\Parameters', false) then showmessage('îòêðûò')
else   ShowMessage('íå ìîãó îòêðûòü') ;
не появляется сообщение: не могу открыть
0
14 / 14 / 2
Регистрация: 22.03.2012
Сообщений: 95
06.11.2013, 19:28
Delphi
1
2
3
4
5
6
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\Remote Manipulator System\v4\Server\Parameters', true);
SHOWMESSAGE(inttostr(reg.GetDataSize('Options')));
reg.CloseKey;
reg.Free;
а GetDataSize чему равно?
0
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 26
06.11.2013, 19:39
Цитата Сообщение от northener Посмотреть сообщение
Это что? Какой смысл в такой визуализации двоичных данных?
В начале он показал, что под двоичными данными у него текст там, вот и приплел я этот энсича. Но какое это имеет значение к текущему вопросу?

Добавлено через 10 минут
Цитата Сообщение от Maincore Посмотреть сообщение
Delphi
1
2
3
4
5
6
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\Remote Manipulator System\v4\Server\Parameters', true);
SHOWMESSAGE(inttostr(reg.GetDataSize('Options')));
reg.CloseKey;
reg.Free;
а GetDataSize чему равно?
Что то я не понял, у него и с фиксированным массивом не работает?

Решив присоединиться к данной теме, я тоже начал пробовать тягать ключи с двоичными данными, и столкнулся с такой же ошибкой, только при работе с динамическим массивом. Оставляя его размер одним и тем же, он либо пробелы возвращает либо Access Violation возвращает либо invalid data type.
Замечу, что GetDataSize возвращает правильное значение!
Pascal
1
2
3
4
5
6
...
    buf : array of byte;
...
    SetLength(buf,5);
    reg.ReadBinaryData('TEST',buf,5);
...
А вот так все работает.
Pascal
1
2
3
4
5
...
    buf : array[0..4] of byte;
...
    reg.ReadBinaryData('TEST',buf,5);
...
0
14 / 14 / 2
Регистрация: 22.03.2012
Сообщений: 95
06.11.2013, 19:51
kossdm, попробуй воспользоватся вот этой функцией она по идее должна решить проблему с динамической длиной
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function ReadBinary (RootKey: HKEY; SubKey,ValueName: WideString; var Data : String): Bool;
var
  Key     : HKey;
  Buffer  : array of char;
  Size    : Cardinal;
  RegType : DWORD;
begin
  result  := FALSE;
  RegType := REG_BINARY;
  if RegOpenKeyExW(RootKey, pwidechar(SubKey), 0, KEY_READ, Key) = ERROR_SUCCESS then begin
    if RegQueryValueExW(Key,pwidechar(ValueName),NIL,@RegType, NIL,@Size) = ERROR_SUCCESS then begin
      SetLength (Buffer, Size + 1);
     FillChar(Buffer[0], SizeOf(Buffer[0]) * Length(Buffer), #0);
      if RegQueryValueExW(Key,pwidechar(ValueName),NIL,@RegType, @Buffer[0],@Size) = ERROR_SUCCESS then begin
        result := TRUE;
        Data := String (Buffer); // Shows empty or sometimes 1 random char.
      end;
    end;
  end;
  RegCloseKey (Key);
end;
Добавлено через 4 минуты
использовать её так:
Delphi
1
ReadBinary(HKEY_LOCAL_MACHINE,'SOFTWARE\путь\...','ключ','буфер для приема данных');
0
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
06.11.2013, 20:33
Цитата Сообщение от kossdm Посмотреть сообщение
столкнулся с такой же ошибкой, только при работе с динамическим массивом
Цитата Сообщение от kossdm Посмотреть сообщение
reg.ReadBinaryData('TEST',buf,5);
Не удивительно. buf в случае динамического массива это указатель на указатель. Пиши всегда buf[0]. Это будет именно указатель на начало области памяти, в которую нужно записать или из которой прочитать данные.
1
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
06.11.2013, 21:56  [ТС]
все попробовал не работает. так, давайте хватит на этом. я сам не беспокоюсь, и вы тоже не беспокойтесь.
0
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 26
07.11.2013, 04:42
Цитата Сообщение от northener Посмотреть сообщение
Не удивительно. buf в случае динамического массива это указатель на указатель. Пиши всегда buf[0]. Это будет именно указатель на начало области памяти, в которую нужно записать или из которой прочитать данные.
Ура! Интересный момент... получается... РАБОТАЕТ!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  var
    buf : array of byte;
    reg : TRegistry;
    i,sz : integer;
    s : string;
  begin
    reg:=TRegistry.Create;
    reg.RootKey:=HKEY_CURRENT_USER;
    reg.OpenKey('Software\Data Center', true);
     sz:=reg.GetDataSize('TEST');
     showmessage(inttostr(sz));
    SetLength(buf,sz);
    reg.ReadBinaryData('TEST',buf[0],sz);
      for i :=0 to sz-1 do begin
        s:=s+AnsiChar(buf[i]);
      end;
    Button1.Caption:=s;
    reg.CloseKey;
    reg.Free;
Добавлено через 33 секунды
Цитата Сообщение от esmere Посмотреть сообщение
все попробовал не работает. так, давайте хватит на этом. я сам не беспокоюсь, и вы тоже не беспокойтесь.
Ну ка, давай не здавайся!
Давай пробуй такой код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  var
    buf : array of byte;
    reg : TRegistry;
    i,sz : integer;
    s : string;
  begin
    reg:=TRegistry.Create;
    reg.RootKey:=HKEY_CURRENT_USER;
    reg.OpenKey('Software\Data Center', true);
     sz:=reg.GetDataSize('TEST');
     showmessage(inttostr(sz));
    SetLength(buf,sz);
    reg.ReadBinaryData('TEST',buf[0],sz);
      for i :=0 to sz-1 do begin
        s:=s+AnsiChar(buf[i]);
      end;
    Button1.Caption:=s;
    reg.CloseKey;
    reg.Free;
0
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
07.11.2013, 15:48  [ТС]
не-ра-бо-та-ет... когда настроил под себя, запустил и нажал на кнопку, показывают 967

Добавлено через 2 минуты
ты лучше скачай rms 5.1, установи и попробуй у себя
0
14 / 14 / 2
Регистрация: 22.03.2012
Сообщений: 95
07.11.2013, 16:19
Цитата Сообщение от esmere Посмотреть сообщение
не-ра-бо-та-ет... когда настроил под себя, запустил и нажал на кнопку, показывают 967

Добавлено через 2 минуты
ты лучше скачай rms 5.1, установи и попробуй у себя
только что установил rms 5.1 попробовал прочитать данные этой функцией ВСЕ НОРМАЛЬНО ЧИТАЕТ
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  str:string;
  outfile: TextFile;
 
implementation
 
{$R *.dfm}
 
function ReadBinary (RootKey: HKEY; SubKey,ValueName: WideString; var Data : String): Bool;
var
  Key     : HKey;
  Buffer  : array of char;
  Size    : Cardinal;
  RegType : DWORD;
begin
  result  := FALSE;
  RegType := REG_BINARY;
  if RegOpenKeyExW(RootKey, pwidechar(SubKey), 0, KEY_READ, Key) = ERROR_SUCCESS then begin
    if RegQueryValueExW(Key,pwidechar(ValueName),NIL,@RegType, NIL,@Size) = ERROR_SUCCESS then begin
      SetLength (Buffer, Size + 1);
     FillChar(Buffer[0], SizeOf(Buffer[0]) * Length(Buffer), #0);
      if RegQueryValueExW(Key,pwidechar(ValueName),NIL,@RegType, @Buffer[0],@Size) = ERROR_SUCCESS then begin
        result := TRUE;
        Data := String (Buffer); // Shows empty or sometimes 1 random char.
      end;
    end;
  end;
  RegCloseKey (Key);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
ReadBinary(HKEY_LOCAL_MACHINE,'SYSTEM\Remote Manipulator System\v4\Server\Parameters','Options',str);
AssignFile(outfile, 'C:\reg_binary.txt');
Rewrite(outfile);
writeln(outfile, str);
CloseFile(outfile);
end;
 
end.
1
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
07.11.2013, 21:38  [ТС]
вот этот код работает. ты же другой код давал мне... спасибо тебе огромное за твои старания)))))

Добавлено через 6 минут
А можно вставить эти значения сразу в edit или в memo? Без извлечения в текстовик??

Добавлено через 27 минут
и чтобы убралось все лишнее кроме Id-a????
0
14 / 14 / 2
Регистрация: 22.03.2012
Сообщений: 95
07.11.2013, 21:53
А можно вставить эти значения сразу в edit или в memo? Без извлечения в текстовик??
Можно данные находятся в переменной str
Delphi
1
memo1.text:=str
А насчет убрать лишнее это уже другой вопрос - парсинг данных.
Выклади содержимое
Code
1
C:\reg_binary.txt
посмотрю, что можно сделать.
0
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 22
07.11.2013, 22:02  [ТС]
вот содержимое текстовика:
C
1
2
3
4
5
6
TPF0TROMServerOptions  UseNTAuth
SecurityLevelPortEnableOverlayCaptureShowTrayIconBindIP
Any interfaceCallbackAutoConnect   CallbackConnectInterval<HideStop IpFilterTypeProtectCallbackSettingsProtectInetIdSettings
InternetIdS-DF1263AB-EC34-4082UseInetConnection  UseCustomInetServerDoNotCaptureRDPDisableRemoteControlDisableRemoteScreenDisableFileTransferDisableRedirect
DisableTelnetDisableRemoteExecuteDisableTaskManagerDisableOverlayDisableShutdownDisableRemoteUpgradeDisablePreviewCaptureDisableDeviceManagerDisableChatDisableScreenRecordDisableAVCaptureDisableSendMessageDisableRegistry
DisableAVChatDisableRemoteSettingsNotifyChangeTrayIconNotifyBallonHintNotifyPlaySoundLogUseSidId41578.6914305324Licenses®RMS-F-F2F0dB4a4799e8F260E4602Eef5E5B1abiY2S2dYXlRfDwwnI20HDQQMHUVfDm4hJwxeQ1VXDB5cJnNvW1wPBQsEBglqcXxbXA8MVkQPA2NgYgIVAwADA24BZHdgBAIFBw4fVURscTBcTA8ADh9SXiZzbx1TVEltWV9WPXM=
Добавлено через 1 минуту
в memo оно не появляется.
Только вот это
TPF0TROMServerOptions
0
14 / 14 / 2
Регистрация: 22.03.2012
Сообщений: 95
07.11.2013, 22:02
Цитата Сообщение от esmere Посмотреть сообщение
вот содержимое текстовика:
C
1
2
3
4
5
6
TPF0TROMServerOptions  UseNTAuth
SecurityLevelPortEnableOverlayCaptureShowTrayIconBindIP
Any interfaceCallbackAutoConnect   CallbackConnectInterval<HideStop IpFilterTypeProtectCallbackSettingsProtectInetIdSettings
InternetIdS-DF1263AB-EC34-4082UseInetConnection  UseCustomInetServerDoNotCaptureRDPDisableRemoteControlDisableRemoteScreenDisableFileTransferDisableRedirect
DisableTelnetDisableRemoteExecuteDisableTaskManagerDisableOverlayDisableShutdownDisableRemoteUpgradeDisablePreviewCaptureDisableDeviceManagerDisableChatDisableScreenRecordDisableAVCaptureDisableSendMessageDisableRegistry
DisableAVChatDisableRemoteSettingsNotifyChangeTrayIconNotifyBallonHintNotifyPlaySoundLogUseSidId41578.6914305324Licenses®RMS-F-F2F0dB4a4799e8F260E4602Eef5E5B1abiY2S2dYXlRfDwwnI20HDQQMHUVfDm4hJwxeQ1VXDB5cJnNvW1wPBQsEBglqcXxbXA8MVkQPA2NgYgIVAwADA24BZHdgBAIFBw4fVURscTBcTA8ADh9SXiZzbx1TVEltWV9WPXM=
Тебя это интересует?
Code
1
IdS-DF1263AB-EC34-4082
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2013, 22:02

Вытянуть значение , ответ API
Всем привет, от одной апишки получаю ответ в виде {'api_version': None, 'kind': None, 'metadata': {'annotations':...

Вытянуть значение периодического элемента
1С: 7.7 (7.70.027). Помогите пжт вытянуть значение периодического элемента (Плановая наценка). В конфе есть справочник...

Как вытянуть из POST значение массива
есть вот такой код: &lt;input type=&quot;checkbox&quot; name=&quot;abc&quot; value=1 &lt;?php echo $check_target;?&gt;/&gt;текст&lt;br /&gt; а потом нажимаем...

вытянуть значение HINSTENCE из текущего потока
Доброго времени суток! Подскажите как можно вытянуть значение HINSTENCE из текущего потока. Может есть какая функция. Т.е. хочу в...

Как вытянуть значение из БД по id из dropdownlist с jquery
Помогите разобраться третий день бьюсь! Есть у меня на странице всплывающий список с размерами одежды. В зависимости от выбранного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru