Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 473

Раздел: Delphi » Прочее
/ вопрос открыт /

Приветствую, уважаемые эксперты!

procedure TForm1.AdvGlowButton1Click(Sender: TObject);
var
Reg:tregistry;
begin
Reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SYSTEM\CurrentControlSet\Services\USBSTOR',true);
reg.WriteBool('Start',true);
end;

Создал в реестре параметр DWORD работает отлично, он добавляет в значениях единичку а мне надо добавить 4. Не подскажите как мне это сделать?

POWER Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: POWER (статус: Посетитель)
Вопрос отправлен: 2 марта 2009, 09:29
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Dron

Здравствуйте, POWER!
Записывается-то единица, но по смыслу - логическое значение "истина":

reg.WriteBool('Start',true);
Записывайте число напрямую:
reg.WriteInteger('Start',4);

Ответ отправил: Dron (статус: Студент)
Время отправки: 2 марта 2009, 09:56
Оценка за ответ: 2

Комментарий к оценке: не получиться

Мини-форум вопроса

Всего сообщений: 14; последнее сообщение — 3 марта 2009, 07:35; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 2 марта 2009, 11:44 [#1]:

Так если надо 4, то и пишите 4, а не true.
Поясните Ваш комментарий "не получиться". Это Ваше предположение? Или уже попробовали?
Галочка "подтверждения прочтения" - вселенское зло.
POWER

POWER (статус: Посетитель), 2 марта 2009, 11:57 [#2]:

не получиться так как 4 это integer а true - boolean предоставьте пжлст другой вариант
POWER

POWER (статус: Посетитель), 2 марта 2009, 11:58 [#3]:

я попробовал..
POWER

POWER (статус: Посетитель), 2 марта 2009, 12:03 [#4]:

так как мне нужена ввести 4 в место true в DWORD reg.WriteBool('Start',true); а Dron показывал на строковой параметр reg.WriteInteger('Start',4);
Вадим К

Вадим К (статус: Академик), 2 марта 2009, 12:03 [#5]:

Стоп, а что дожно быть в реестре, 4? Тогда зачем туда пишете True?
Галочка "подтверждения прочтения" - вселенское зло.
POWER

POWER (статус: Посетитель), 2 марта 2009, 12:15 [#6]:

так как мне нужена ввести 4 в место true в DWORD reg.WriteBool('Start',true); а Dron показывал на строковой параметр reg.WriteInteger('Start',4);
POWER

POWER (статус: Посетитель), 2 марта 2009, 12:20 [#7]:

Помогите мне решить эту проблему пжлст...
Вадим К

Вадим К (статус: Академик), 2 марта 2009, 12:21 [#8]:

что?
WriteBool имеет параметр boolean и не может писать числа. Он предназначен для лигических значений.
WriteInteger пишет не строку, а целое число.
Что же не так?
Пишите разборчивее и внятнее.
Галочка "подтверждения прочтения" - вселенское зло.
POWER

POWER (статус: Посетитель), 2 марта 2009, 12:29 [#9]:

смотрите Вадим:

открываю путь в реестре и тот DWORD параметр "Start" когда я ввожу ручной в место единицы 4 то USB порт закрывается а если ручной вожу 3 или 2 или 1 то USB порт откроется. Теперь мне надо сделать это програмно чтоб при 1 клике он ввел туда 4.

procedure TForm1.AdvGlowButton1Click(Sender: TObject);
var
Reg:tregistry;
begin
Reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SYSTEM\CurrentControlSet\Services\USBSTOR',true);
reg.WriteBool('Start',true); -> вместо true мне надо ввести 4
end;

вот и вся история....
Вадим К

Вадим К (статус: Академик), 2 марта 2009, 12:42 [#10]:

ответ такой - застрелиться. Да да.
если надо туда писать 4, так пишите 4, а не выдумывайте с true/false, так как Вам так хочеться.
Вы хотите, что бы стандартная функция выводила 4....
И я вроде даже знаю, откуда такие плохие мысли в вашей голове. если читать как булен, то 4 будет преобразовываться в true, не отсюдова?
Итак код
procedure TForm1.AdvGlowButton1Click(Sender: TObject);
var
Reg:tregistry;
begin
Reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('\SYSTEM\CurrentControlSet\Services\USBSTOR',true);
reg.WriteInteger('Start',4);
end;
Запишет 4? Да? тогда не морочьте голову.
Галочка "подтверждения прочтения" - вселенское зло.
POWER

POWER (статус: Посетитель), 2 марта 2009, 12:45 [#11]:

а у вас получилось?
Вадим К

Вадим К (статус: Академик), 2 марта 2009, 12:58 [#12]:

Оно обязано работать. Если 1 от true пишеться, то и 4 запишеться
Галочка "подтверждения прочтения" - вселенское зло.
Dron

Dron (статус: Студент), 2 марта 2009, 18:19 [#13]:

Уважаемый POWER,
прежде чем лепить двойки внимательно смотрите, что вам написали. Вам написали не WriteBool('Start',4), а WriteInteger('Start',4). Если для вас в этом разницы нет - увы и ах. А если для вас ещё 4 и True одного типа - совсем замечательно.
С уважением.
POWER

POWER (статус: Посетитель), 3 марта 2009, 07:35 [#14]:

Огромное всем спасибо за ответ и за то что ответили мне и мое глубокое извинение. В следующий раз буду внимателен.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:01
Выполнено за 0.04 сек.