| 
| 
 | Вопрос # 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]:Огромное всем спасибо за ответ и за то что ответили мне и мое глубокое извинение. В следующий раз буду внимателен. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |