2015-10-09 3 views
0

Я нашел настройку ip на HKEY_LOCAL_MACHINE \ Comm \ PCCARD \ PHOTON1 \ PARMS \ TCPIP через удаленный редактор реестра windows ce. После того, как я изменил IP-адрес, но он сохранит предыдущий ip, который я установил на КПК. В любом случае, чтобы исправить эту проблему? * Мне удалось изменить домашнюю страницу ie через редактор реестра.Невозможно установить статический ip через ключ реестра - windows ce 5.0

Извините за мой плохой английский.

ответ

0

Существует несколько способов сделать это.

Очевидным решением является изменение статического IP-адреса с помощью апплета в панели управления.

Предполагая, что вы ищете программное решение, после изменения раздела реестра вы можете позвонить RegFlushKey(HKEY_LOCAL_MACHINE);, чтобы сохранить изменения, а затем перезагрузить устройство.

Если вы хотите, чтобы изменения вступили в силу немедленно, то есть во избежание перезагрузки, вам нужно будет переустановить адаптер после настройки нового адреса. Вот пример (обработка ошибок опущена для ясности):

HANDLE h = CreateFile(L"NDS0:", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); 

// Assuming adapter is called PHOTON1. 
// Append extra NUL, IOCTL_NDIS_REBIND_ADAPTER expects a MULTI_SZ. 
WCHAR adapter[] = "PHOTON1\0"; 

DeviceIoControl(h, IOCTL_NDIS_REBIND_ADAPTER, adapter, sizeof(adapter), NULL, 0, NULL, 0); 

CloseHandle(h); 

Опять же, если вы хотите изменить сохраняться после перезагрузки, вызовите RegFlushKey после обновления реестра.

+0

[DllImport ("coredll.dll")] public static extern int RegFlushKey (IntPtr hKey); const UInt32 HKEY_LOCAL_MACHINE = 0x80000003; RegistryKey rKey; rKey.SetValue («IPAddress», IPAddress_, RegistryValueKind.MultiString); rKey.Close(); IntPtr hkeylocalmachine = new IntPtr (unchecked ((int) HKEY_LOCAL_MACHINE)); RegFlushKey (hkeylocalmachine); – user1627210

+0

Вы можете помочь мне проверить этот код? потому что после того, как я установил раздел реестра, все еще происходит одна и та же проблема, и нет никакого сообщения об исключении. – user1627210

+0

Извините, когда вы говорите, что «такая же проблема произошла», вы имеете в виду, что IP-адрес никогда не меняется с тем, что вы его установили? Вы пытались перезагрузить устройство после вызова 'RegFlushKey'? (перезагрузка требуется, если вы не перепроверяете). Выполняется ли «RegFlushKey» (проверьте возвращаемое значение)? –

0

Если у вас есть реестр кустов (данные хранятся в файлах), вы можете изменить IP-адрес один раз, а затем вы всегда увидите этот адрес.

Если у вас есть данные реестра, основанные на ОЗУ, они теряются после перезагрузки (это кажется вашим делом), а затем вам необходимо написать программу запуска, при каждой загрузке установите IP-адрес устройства в тот, который вам нужен.

Смежные вопросы