Как удалить значение реестра и ключ от записи реестра -- registry пол Связанный проблема

How to remove registry value and key from registry entry


2
vote

проблема

русский

Я уже устанавливаю ключ и значение в записи реестра, используя <код> RegSetValueExA , и он создан. Но теперь я хочу удалить этот ключ и значение из записи реестра, и для этого я использую <код> RegDeleteKey , но его давая ошибка 2, которая является «Система, не может найти указанный файл»., Можете ли вы сказать мне, как Могу ли я решить это.

Английский оригинал

I already setting key and value in the registry entry by using RegSetValueExA, and it's created . But Now I want to delete that key and value from registry entry and for that I am using RegDeleteKey but its giving error 2 which is "The system cannot find the file specified.", can you tell me how can I solve this.

</div
  
 
 

Список ответов

4
 
vote

Можете ли вы показать какие-либо коды вообще? Это никому не помогает здесь сузить вашу проблему.

Если бы я сделал предположение, однако, есть что-то не так, как вы указали lpctstr lpsubkey в regopenkeyex или regdeletekee.

Пример:

Если вы создали ключ:

 <код> HKEY_LOCAL_MACHINESoftwareTest   

Для того, чтобы удалить его, вам понадобится что-то подобное:

 <код> RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software", 0, KEY_ALL_ACCESS, &RegHandle) RegDeleteKey(RegHandle, test)   

или

 <код> RegOpenKeyEx(HKEY_LOCAL_MACHINE, someNullValue, 0, KEY_ALL_ACCESS, &RegHandle) RegDeleteKey(RegHandle, L"Software\test")   

Убедитесь, что вы снова проверили функции в MSDN.

regdeletekey regopenkeyex

 

Can you show any codes at all? It doesn't help anyone here narrow down your problem.

If I would take a guess though, there's something wrong with the way you have specified LPCTSTR lpSubKey in either RegOpenKeyEx or RegDeleteKey.

Example:

If you created a key:

HKEY_LOCAL_MACHINESoftwareTest 

In order to delete it, you would need something like this:

RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software", 0, KEY_ALL_ACCESS, &RegHandle) RegDeleteKey(RegHandle, test) 

OR

RegOpenKeyEx(HKEY_LOCAL_MACHINE, someNullValue, 0, KEY_ALL_ACCESS, &RegHandle) RegDeleteKey(RegHandle, L"Software\test") 

Make sure you check out the functions again at MSDN.

RegDeleteKey RegOpenKeyEx

</div
 
 
1
 
vote

имеет ли ключ реестра под ключ? <Код> RegDeleteKey не будет делать рекурсивное удаление. Если вы пишете для Vista +, вы можете использовать <код> RegDeleteTree , в противном случае вам придется кодировать рекурсивное удаление, но есть пример код на MSDN .

Вы также можете использовать <код> SHDeleteKey / Код>

 

Does the registry key have sub-keys? RegDeleteKey won't do a recursive delete. If you're writing for Vista+, you can use RegDeleteTree, otherwise you will have to code a recursive delete, but there's example code on MSDN.

You can also use SHDeleteKey out of shlwapi.dll.

</div
 
 
1
 
vote

Две вещи, чтобы проверить наличие ошибки 2 / "Файл не найден":

    .
  • Убедитесь, что это не «значение» в клавише вместо фактического ключа.

Если вы создаете папку, такую ​​как HKCU & GT; Программное обеспечение и GT; Имя компании, а затем хранить значение, такую ​​как опция = "Foo" с regsetvalueex, то вам нужно удалить это с regdeletevalue или regdeletevalueex.

    .
  • Если это 64-битная ОС, есть отдельные представления реестра для 32-битного по сравнению с 64-битным. По умолчанию 32-битное приложение будет использовать 32-битный вид для всего, но если вы создали запись, используя key_wow64_64key по какой-то причине, вам нужно использовать это при удалении.
 

Two things to check for error 2 / "file not found":

  • Make sure it's not a "value" within a key instead of an actual key.

If you create a folder like HKCU > Software > CompanyName and then store a value like option = "foo" with RegSetValueEx, then you need to delete this with RegDeleteValue or RegDeleteValueEx.

  • If it's a 64-bit OS, there are separate registry views for 32-bit vs. 64-bit. By default a 32-bit app will use the 32-bit view for everything but if you created the entry using KEY_WOW64_64KEY for some reason then you need to use that when deleting.
</div
 
 
 
 

Связанный проблема

0  Выявление проблемы установленное приложение на Win SVR 2003 x64  ( Problem detecting installed application on win svr 2003 x64 ) 
У меня есть приложение для Windows X86, которое состоит из нескольких услуг и клиента UI. Из-за различных проблем с убеждением различных MSI для правильной ...

3  Скрытие секрета в реестре Windows  ( Hiding a secret in windows registry ) 
Я знаю, что реестр не является лучшим местом , чтобы что-то скрыть. Сейчас я пишу программное обеспечение лицензирования, которое требует, чтобы сохранить и...

2  Запустите приложение для запуска для всех пользователей, но также разрешите настройку для каждого пользователя (Windows)  ( Launch app on startup for all users but also allow per user setting windows ) 
Мне нужна мой установщик приложений Установите программу к Auto-Startup для всех пользователей. Затем каждый отдельный пользователь должен быть в состоянии из...

2  Qt установщик не регистрирует filetype на windows  ( Qt installer unregister filetype on windows ) 
Я работаю с установщиком Qt, чтобы развернуть программное обеспечение на Windows Machines. До сих пор все работает, как и ожидалось: я могу установить вещи и ...

0  Вопрос в реестре HIVE  ( Registry hive question ) 
У кого-нибудь есть смысл пример того, как программно, в C / C ++, загрузить улей реестра пользователей? Я бы не загрузил улей, установить некоторые значения и...

1  Проект настроек Visual Studio Project и размещение приложения в пути запуска  ( Visual studio setup project and placing application in startup path ) 
Я создал функцию, которая выполняется в начале установки, чтобы создать ключ реестра в программном обеспечении Microsoft Windows Preeversion Run Path, поэ...

1  Не может зарегистрировать управление ActiveX только на одном компьютере  ( Cannot register an activex control on only one computer ) 
Я столкнулся с нечетной проблемой при попытке зарегистрировать предоставленную поставку ActiveX Control на двух разных компьютерах. На одном компьютере я могу...

1  Как мне установить свое приложение по умолчанию для типа файла в Windows 8.1 без дополнительной подсказки?  ( How do i set my application as default for a file type in windows 8 1 without an ) 
Моя компания имеет приложение Windows, которую пользователи могут захотеть установить по умолчанию, чтобы открыть конкретный тип файла. У нас есть кнопка в на...

23  Как решить, где хранить государство для пользователя? Реестр? Данные приложения? Изолированное хранение?  ( How to decide where to store per user state registry appdata isolated storage ) 
Когда реестр Windows будет использоваться для состояния для каждого пользователя, и когда мы должны использовать файловую систему, в частности, папку AppData ...

14  Создать 64-битный ключ реестра (не WOW64) из 32-битного приложения  ( Create 64 bit registry key non wow64 from a 32 bit application ) 
У меня есть визуальный студийный установщик, который создает некоторые ключи реестра: <код> HKEY_LOCAL_MACHINESOFTWAREMyApp Но ключевые ключи реестра эт...

1  Извлечение определенного ключа реестра из Reg Query на основе строки поиска  ( Extracting specific registry key from reg query based on search string ) 
Я пытаюсь извлечь ключевое значение записи реестра. Я только хочу, чтобы ключ, который я пытался объединить, используя FOR /F , однако не повезло. , напр...

0  Сценарий Для удаления учетных записей пользователей из списка профилей на Windows 8.1  ( Script to delete user accounts from profile list on windows 8 1 ) 
Следующий код предназначен для удаления всех учетных записей пользователей от HKEY_LOCAL_MACHINE Software Microsoft Windows NT Centreversion ProfileList...

0  Как удалить запись реестра в Windows X64 в 64-битном дереве без использования regdeletekeyex в C ++?  ( How do i delete a registry entry in windows x64 in the 64 bit tree without using ) 
Я работаю над 32 установщиком, который должен работать в средах от Win XP вверх. У нас есть проблема, где мы должны удалить запись реестра на раздел X64 реест...

1  Регистрация файлов .ocx и DLL с использованием пакета VB6 и мастера развертывания на Win 2008 R2  ( Registering ocx and dll files using vb6 package and deployment wizard on win 20 ) 
Я пытаюсь установить приложение VB, используя установщик, созданный мастером пакета и развертывания (установщик, созданный на Win 2003). Установщик устанавлив...

1  Как проверить, установлен ли конкретный веб-браузер на системе?  ( How to check if specific web browser is installed on system ) 
Как проверить, установлен ли конкретный веб-браузер (Chrome, Firefox, Opera) в системе? (C ++ / Windows Platform). Может быть, это можно проверить где-то в ре...

Связанный проблема

0  Выявление проблемы установленное приложение на Win SVR 2003 x64 
3  Скрытие секрета в реестре Windows 
2  Запустите приложение для запуска для всех пользователей, но также разрешите настройку для каждого пользователя (Windows) 
2  Qt установщик не регистрирует filetype на windows 
0  Вопрос в реестре HIVE 
1  Проект настроек Visual Studio Project и размещение приложения в пути запуска 
1  Не может зарегистрировать управление ActiveX только на одном компьютере 
1  Как мне установить свое приложение по умолчанию для типа файла в Windows 8.1 без дополнительной подсказки? 
23  Как решить, где хранить государство для пользователя? Реестр? Данные приложения? Изолированное хранение? 
14  Создать 64-битный ключ реестра (не WOW64) из 32-битного приложения 
1  Извлечение определенного ключа реестра из Reg Query на основе строки поиска 
0  Сценарий Для удаления учетных записей пользователей из списка профилей на Windows 8.1 
0  Как удалить запись реестра в Windows X64 в 64-битном дереве без использования regdeletekeyex в C ++? 
1  Регистрация файлов .ocx и DLL с использованием пакета VB6 и мастера развертывания на Win 2008 R2 
1  Как проверить, установлен ли конкретный веб-браузер на системе?