Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение IP адреса, быстрое изменение IP адреса 
:(
    Опции темы
Bima
Дата 17.8.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Недавно наткнулся на топик в котором сказано, как поменять IP адрес через реестр, сделал программу, но у этой программы есть только один минус: что бы изменения вступили в силу нужно перезагрузится!!!
Хотя если я меняю через свойства IP протокола свой IP адрес, то изменения вступают сразу.
Думаю, что дело не только в реестре, а в фунциях, которые меняют эти параметры сразу.
Может кто встречал такую проблему???


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 17.8.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



PM MAIL   Вверх
Bima
Дата 17.8.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Цитата

ЧИТАТЬ ЗДЕСЬ! 


Уважаемый dumb. Эту тему, на которую вы даете мне ссылку, я сам создавал!!! В ней я пытался разобраться как написать программу, которая правит реестр. Но тем неменее проблема остается, так как все равно нужна перезагрузка, а мне нужно сразу поменять IP.


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 17.8.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



да екарный бабай!

текст моего поста прочти внимательно хотя бы один раз и нажми на ссылку.
обратить особое внимание на ссылку после фразы "и вообще"...

user posted image
PM MAIL   Вверх
Bima
Дата 17.8.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Пордон, не увидел (прошу прощения)
блин, там столько функций


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Bima
Дата 18.8.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



C IP адресом разобрался, теперь вопрос другой, можно ли программно поменять HostName и ComputerName. Через реестр знаю как, но думаю, что там такая же проблем, как и с IP. в IPHelper не нашел smile


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 18.8.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Computer Names

Добавлено @ 13:39 
обратить внимание на
Цитата

Name changes do not take effect until the user restarts the computer.

PM MAIL   Вверх
Bima
Дата 18.8.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Вот мой код:
Код

ValA=ECN->Text;
sprintf(Value,"%s\0",ValA.c_str());
SetComputerNameEx(ComputerNamePhysicalNetBIOS,Value);

да, имя компа меняется, также можно использовать вместо последней строки, сточку:
Код

/SetComputerNameEx(ComputerNameNetBIOS,Value);

А, еще такой эффект дает вот такой код:
Код

if (Reg->OpenKey("SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ComputerName",false))
   {
   Reg->WriteString("ComputerName", ECN->Text);
   Reg->CloseKey();
   }


так с ComputerName разобрался, а как быть HostName???
если его править в реестре кодом, типа:
Код

if (Reg->OpenKey("SYSTEM\\CurrentControlSet\\Services\\TcpIp\\Parameters",false))
   {
   Reg->WriteString("HostName", EHN->Text);
   Reg->CloseKey();
   }

то компьютер начинает пинговаться по этому адресу, но после загрузки ничего не остается smile


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
HappyLife
Дата 18.8.2006, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 4
Всего: 8



Нач нужно менять не только здесь. По видимому он восстанавливает значения из другого ключа реестра.
PM MAIL   Вверх
Bima
Дата 18.8.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



сходу вопрос...
С КАКОГО????

и что неужели API функций нету???


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Romikgy
Дата 18.8.2006, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



regmon те в руки 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Bima
Дата 18.8.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



слишком многопроцессов общаются с реестром, не отслежу.
К тому же реестр это не выход, на мой взгляд, ведь винда скорее всего правит API функциями, а реестр, потом правит, хотя даже в ней нужна перезагрузка, для смены имени


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 18.8.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



странно. мне показалось что-ли... я вроде привел цитату из мсдна относительно перезагрузки?..

короче. по идее, все эти имена должны быть одинаковыми, а то есть у меня подозрение, что ты их разными делаешь. а логика "восстановления" Hostname такая - процесс winlogon'а просто копирует туда значение из "NV hostname", который, в свою очередь, устанавливается функцией SetComputerNameEx.
так что чтобы было все ажурно нужно вызывать SetComputerNameEx, а потом прописывать в реестр Hostname(такой же, как и при вызове SetComputerNameEx).
PM MAIL   Вверх
Bima
Дата 18.8.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



А вот нифига не получается!!!

вот мой код:
Код

AnsiString ValA;
char Value[256];

ValA=ECN->Text;
sprintf(Value,"%s\0",ValA.c_str());
SetComputerNameEx(ComputerNameNetBIOS,Value);
if (Reg->OpenKey("SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ComputerName",false))
   {
   Reg->WriteString("ComputerName", ECN->Text);
   Reg->CloseKey();
   }
if (Reg->OpenKey("SYSTEM\\CurrentControlSet\\Services\\TcpIp\\Parameters",false))
   {
   Reg->WriteString("HostName", EHN->Text);
   Reg->CloseKey();
   }
Opros();
Application->MessageBox("Ok","Information",MB_ICONINFORMATION);


Там нетрудно заметить, есть два поля. В них я ввожу одинаковые значения.
После выполнения кода, и ПЕРЕЗАГРУЗКИ компьютера ничего не происходит, то есть ComputerName меняется, как и раньше (хотя оно меняется и до перезагрузки), а вот HostName, как до, так и после перезагрузки не меняется.
Есть одна закономерность.... если менять HostName то комп пингуется по этому имени только до перезагрузки, а вот если менять ComputerName, то комп пингуется по этому имени после перезагрузки.


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 18.8.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



тьпу. увидел у тебя косяк, но забыл написать...

причем предыдущий код
Код

SetComputerNameEx(ComputerNamePhysicalNetBIOS,Value);

был более правильным - он хоть работал.

а это:
Код

SetComputerNameEx(ComputerNameNetBIOS,Value);

ничего не делает и просто выпадает с ошибкой.

описание внимательней читай:
SetComputerNameEx принимает только три варианта - ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsHostname, ComputerNamePhysicalNetBIOS

вобщем:
Код

SetComputerNameEx(ComputerNamePhysicalDnsHostname, LowerCase(ECN->Text).c_str());
if (Reg->OpenKey("SYSTEM\\CurrentControlSet\\Services\\TcpIp\\Parameters",false))
   {
   Reg->WriteString("HostName", LowerCase(ECN->Text));
   Reg->CloseKey();
   }
Opros();
Application->MessageBox("Ok","Information",MB_ICONINFORMATION);


и еще раз повторю - имя должно быть одинаковое!

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1377 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.