|
Вопрос # 2 473/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
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 (статус: Посетитель)
Вопрос отправлен: 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 (статус: Посетитель), 2 марта 2009, 11:57 [#2]:
не получиться так как 4 это integer а true - boolean предоставьте пжлст другой вариант
|
|
POWER (статус: Посетитель), 2 марта 2009, 11:58 [#3]:
я попробовал..
|
|
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 (статус: Посетитель), 2 марта 2009, 12:15 [#6]:
так как мне нужена ввести 4 в место true в DWORD reg.WriteBool('Start',true); а Dron показывал на строковой параметр reg.WriteInteger('Start',4);
|
|
POWER (статус: Посетитель), 2 марта 2009, 12:20 [#7]:
Помогите мне решить эту проблему пжлст...
|
|
Вадим К (статус: Академик), 2 марта 2009, 12:21 [#8]:
что?
WriteBool имеет параметр boolean и не может писать числа. Он предназначен для лигических значений.
WriteInteger пишет не строку, а целое число.
Что же не так?
Пишите разборчивее и внятнее.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
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 (статус: Посетитель), 2 марта 2009, 12:45 [#11]:
а у вас получилось?
|
|
Вадим К (статус: Академик), 2 марта 2009, 12:58 [#12]:
Оно обязано работать. Если 1 от true пишеться, то и 4 запишеться
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Dron (статус: Студент), 2 марта 2009, 18:19 [#13]:
Уважаемый POWER,
прежде чем лепить двойки внимательно смотрите, что вам написали. Вам написали не WriteBool('Start',4), а WriteInteger('Start',4). Если для вас в этом разницы нет - увы и ах. А если для вас ещё 4 и True одного типа - совсем замечательно.
С уважением.
|
|
POWER (статус: Посетитель), 3 марта 2009, 07:35 [#14]:
Огромное всем спасибо за ответ и за то что ответили мне и мое глубокое извинение. В следующий раз буду внимателен.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|