![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Sterling |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Народ подскажите как такую штуку реализовать в дельфях.
Есть Edit в него вбиваеться ип. Скажем с пробелами или точками. Нажимаешь кнопку и он ставиться в твоей системе в одно из потключений. Потключение выбираеться в ComboBox. Кстати как в него записать все виды потключений меня тоже интересуют =) Если будут коментарие, то вообще супер! Зарание благодарен |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces
Думаю комментарии там не нужны. |
|||
|
||||
| Sterling |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
А как к этому обратиться. Вот в чем прикол то!
|
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 1 Всего: 102 |
так и обратиться как Snowy написал.
TRegsitry тебе в руки -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Читай справку по TRegistry
Читай FAQ или DRKB - работа с реестром. |
|||
|
||||
| Sterling |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Почитал, вроде что-то нашел, но вот вопрос. Он мне меняет параметр, и так же ставит тип ключа походу который по умолчанию используеться, а вот как тип указать я так и не разобрался:
И еще в ...\interface у меня находятся еще несколько каталогов, например, {95C19F58-C265-489C-8831-257144D1DEC5}, это и есть одно из сетевых потключений?. Но опять же не понятка, сетевуха у меня одна а таких разделов пять. Или это все соединения когда либо созданный у меня на компе? Это сообщение отредактировал(а) Sterling - 18.3.2005, 08:02 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Нет, старые интерфейсы удаляются вместе с адаптером. Эти две ветки есть всегда. Но зачем они там, я не знаю. Действующие ветки имеют те же имена, что и в разделе Adapters. Нет адаптера - нет интерфейса. |
|||
|
||||
| Sterling |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Вы наверное меня не правельно поняли. у меня такая ситуация:
По этому пути, HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces , у меня есть еще 6 папок ({1CB64B9E-A0DF-47E0-B901-64B473509088}, {2BC6FB07-2753-4120-9FFA-C07A1BC18B22}, {43EC3B44-2C96-4D97-8610-49050CCE79F2}, {45C5AB30-B899-49D4-8A16-CE8F833EDB32}, {95C19F58-C265-489C-8831-257144D1DEC5}, {D0C862C9-906D-469A-A635-0478E68C9DE6}) и только в одной из них в ключе IPAddress указан мой адрес, поэтому то я и в предыдущем коде вписал пусть прямо до этой папки. А если прога будет на другом компе, что тогда. Вот я и хочу узнать что это за папки такие. И второе когда с помощью предыдущего кода я меняю ип, то тип ключа IPAddress становиться reg_sz, а мне надо reg_multi_sz. Как у казать ему этот тип? |
|||
|
||||
| Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Нужно считать список ключей из раздела Adapters - получишь реально действующие ключи. По полученным номерам, можно обращаться уже к Interfaces. Можно и сразу обращаться к Interfaces и игнорировать ветки, в которых IPAddress либо отсутствует, либо равен 0.0.0.0
TRegistry - упрощенный клаз, для более удобной работы с реестром. Подразумевается его совместимость по структурам и коммандам с TIniFile. Поэтому он не обладает полными возможностями. Он разрабатывался для сохранения своих значений, а не для изменения системных. Поэтому в нем нельзя создать значение типа reg_multi_sz. Для этого придется работать с реестром через WinAPI. Читай справку по RegQueryValueEx b и вообще посмотри раздел "Registry Functions" в справочнике WinAPI. |
||||
|
|||||
| Sterling |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Вот что получилось с одним но (потчеркнуто):
Это сообщение отредактировал(а) Sterling - 18.3.2005, 12:14 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Вот. Программа для изменения IP адресов.
Где-то может коряво, без комментариев и try, но работает. Работать под 98-ми скорее всего не бедет, но под NT на любой машине должно.
|
|||
|
||||
| Sterling |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
А ты с моей мне помочь не можешь? С тем что уже есть.
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Так вот - готовое все.
Выдергивай процедуры ReadIP и SetIP. Они на вход должны получать ключ, типа {95C19F58-C265-489C-8831-257144D1DEC5}. В формкреате вставь создание списка этих ключей, как в моем коде. Главное, чтобы индексы комбобокса совпадали с этим списком. Хотя можно придумать что-нить пограмотнее. Вобщем, в результате работы формкреате, мы имеем комбобокс, заполненный именами сетевых адаптеров, и IList, заполненный соответствующими UID'ами интерфейсов этих адаптеров. Если не справишься, высылай исходняки мне на почту. P.S. Только что проверил - под 98-ми действительно не работает. Под 9х, думаю схема примерно такая же, только инфа в другом месте должна быть. Где - не знаю, у меня 98-х нет - машина не моя, ковыряться не могу. |
|||
|
||||
| Sterling |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2004 Репутация: нет Всего: нет |
Прикол в том, что нужна перезугрузка компа после использования этого кода. А вот как избежать ее. При использование стандартных стредств виндовс, при смене ипа на хр, перезагрузка не нужна!
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Это можно осуществить функциями iphlpapi.dll. AddIPAddress - связывает новый адрес с адаптером, DeleteIPAddress соответственно удаляет.
Вот код использования(но есть одно проблемка, которую я пока по неимении свободного времени не решил - у тебя будет выскакивать AV, при наличии указателей в структуре - где то идет чтение\записть в невыделеную память, но думаю ты разберешься или тебе кто нить поможет
Добавлено @ 11:53 Не забудь подключить WinSock для использования функции inet_addr Это сообщение отредактировал(а) <Spawn> - 30.3.2005, 11:52 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |