- Reading the Windows registry key “SOFTWARE\Microsoft\Windows\CurrentVersion\Run” using RegGetValue() returns error code 2
- 1 Answer 1
- Ключи системного реестра Windows
- Отображение расширений файлов
- Редактируем пункт контекстного меню «Создать…»
- Создание псевдонимов к программам
- Скрытие/отображение пользователей в диалоговом окне входа в систему
- Запрет отображения программ в списке часто используемых
- Изменение скорости открытия меню
- Разные полезные ключи системного реестра Windows
- Изменение раскладки клавиатуры при входе в систему
- Не разрывать связь при выходе из системы
- Удаляем программы из списка автозагрузки с помощью редактора реестра
- Где найти разделы реестра, отвечающие за автозагрузку?
- Какие программы лучше не трогать?
Reading the Windows registry key “SOFTWARE\Microsoft\Windows\CurrentVersion\Run” using RegGetValue() returns error code 2
Reading the Windows registry key «SOFTWARE\Microsoft\Windows\CurrentVersion\Run» using RegGetValue() returns error code 2.
I’ve been sitting for hours debugging this problem, but haven’t found a solution.
Here is the code that I use to retrieve the registry value named «test»:
Below is a picture that I’ve added the registry value «test» to the Run key (mentioned above).
The error code I get is 2 which represents an invalid file.
It should be mentioned that the local host is running Windows 10 Pro x64.
What could be the source of this confusion?
Modified code:
I still get the error code 2 after using the KEY_WOW64_64KEY flag.
1 Answer 1
Problem
You are most probably trying to access the 64-bit registry view from a 32-bit application.
By default, a 32-bit application running on WOW64 accesses the 32-bit registry view and a 64-bit application accesses the 64-bit registry view. The following flags enable 32-bit applications to access redirected keys in the 64-bit registry view and 64-bit applications to access redirected keys in the 32-bit registry view. These flags have no effect on shared registry keys.
Solution
You can rebuild your application in x64 mode or you can specify which view of the registry you require.
Ключи системного реестра Windows
Отображение расширений файлов
По умолчанию для удобства работы Windows XP не отображает расширения для зарегистрированных типов файлов — пользователь идентифицирует тип файла по значку. Однако это удобно не во всех случаях, а кроме того учитывая поддержку двойных расширений и возможность присвоения файлу значка несвойственного данному типу файлов это представляет определенную угрозу безопасности (один из методов распространения вирусов — под видом файла со значком картинки пришедшего по почте пользователь запускает exe файл содержащий вирус).
Существует возможность отображать расширения файлов — в меню Проводника выберите пункт «Сервис — Свойства папки — Вид», и снимите флажок в пункте «Скрывать расширения для зарегистрированных типов файлов». Другой вариант — оставить отображение расширений по умолчанию (скрывать) а отобразить их лишь для некоторых файлов — в меню Проводника выберите пункт «Сервис — Свойства папки — Типы файлов», выделите тип файлов, расширение которых необходимо отобразить, нажмите кнопку «Дополнительно» и отметьте флажком пункт «Всегда отображать расширение». Однако этот способ не подходит для исполняемых файлов, поскольку они не отображаются в окне «Типы файлов». Чтобы всегда отображать расширения для исполняемых файлов, откройте редактор реестра, найдите раздел [HKEY_CLASSES_ROOT\xxxfile] (где xxx — расширение исполняемого файла) и создайте пустой строковый параметр «AlwaysShowExt»
Редактируем пункт контекстного меню «Создать…»
Наверняка Вы используете в работе такую удобную функцию как использование пункта контекстного меню «Создать…» для создания новых файлов и папок. При установке новых приложений некоторые из них добавляют в это меню свои пункты, не всегда нужные пользователю и меню разрастается до внушительных размеров. В этом случае возникает необходимость удалить лишние пункты. А бывает ситуация когда было бы неплохо добавить свой пункт меню или изменить создаваемый документ по умолчанию в соответствии с текущими потребностями, например, чтобы система создавала не пустой текстовый файл при выборе «Создать — текстовый документ», а заготовку, содержащую определенный текст. Также изменение шаблонов по умолчанию удобно при создании типовых веб-страниц.
Параметры реестра, отвечающие за меню «Создать -…»:
[HKEY_CLASSES_ROOT\.xxx\ShellNew]
«FileName»=»file.xxx»
Примечания:
-.xxx — расширение создаваемого файла
-file.xxx — файл, используемый в качестве шаблона при создании. Если не указан полный путь к папке в которой хранится файл шаблона, то система пытается найти этот файл в папке ..\Documents and Settings\username\Шаблоны, если в этой папке он отсутствует тогда просматривается папка ..\WINDOWS\ShellNew (по умолчанию именно в этой папке должны храниться шаблоны для всех пользователей), если и в этой папке нет искомого файла, тогда пункт меню, как правило, не задействуется или (если это предусмотрено программой) создается файл по умолчанию. Если требуется создавать файл по умолчанию, то вместо указанного выше параметра «FileName»=»file.xxx» создается пустой строковый параметр «NullFile»=»»
-имя создаваемого меню (а также файла) совпадает с описанием типа файла, который указан как параметр по умолчанию раздела
[HKEY_CLASSES_ROOT\xxxfile]
Если требуется удалить пункт меню, удалите раздел
[HKEY_CLASSES_ROOT\.xxx\ShellNew]
Создание псевдонимов к программам
Windows позволяет создавать псевдонимы для запуска программ и открытия файлов. Например вместо того чтобы набирать такой путь как C:\WINDOWS\Help\ntcmds.chm (или hh ntcmds.chm) можно создать псевдоним кс (или любой другой) и открывать набрав это сокращение в меню «Выполнить» или из панели инструментов «Адрес». Для создания псевдонима следует внести следующие изменения в реестр — в разделе
создайте подраздел кс.exe и присвойте параметру «По умолчанию» значение C:\\WINDOWS\\Help\\ntcmds.chm
Теперь если набрать псевдоним кс в меню «Выполнить» или в панели инструментов «Адрес», откроется файл C:\WINDOWS\Help\ntcmds.chm (справочник по командной строке).
Скрытие/отображение пользователей в диалоговом окне входа в систему
По умолчанию в диалоговом окне входа в систему отображаются иконки пользователей, зарегистрированных в системе. Чтобы скрыть какого-то пользователя из этого окна, создайте в разделе
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList] параметр типа dword
«user»=»00000000», где «user» — имя пользователя, которого нужно удалить из окна входа в систему.
Теперь чтобы войти в систему под учетной записью такого пользователя, необходимо будет нажать Alt Ctrl и не отпуская этих клавиш дважды нажать Del, после чего ввести данные пользователя для входа в систему. Точно так же по умолчанию не отображается учетная запись «Администратор», чтобы отобразить ее в окне входа в систему, создайте в разделе
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList] параметр типа dword
«Администратор»=»00000001»
Запрет отображения программ в списке часто используемых
По умолчанию в меню Пуск отображается список наиболее часто используемых программ для быстрого доступа к этим программам. Эту возможность можно отключить с помощью интерфейса Windows. Но что делать если сама возможность нас устраивает, но мы не хотим чтобы какие-то определенные программы не отображались в этом списке? Добавьте в раздел реестра (или отредактируйте существующий):
[HKEY_CLASSES_ROOT \Applications\prog.exe\] пустой строковый параметр NoStartPage, где prog.exe — имя приложения.
Приложение будет удалено из существующего списка и больше не появится в нем. Запретить отображение иконок на рабочем столе — Если применить этот совет, ярлыки на рабочем столе отображаться не будут. После восстановления этой функции все созданные в скрытом режиме ярлыки будут отображены. Чтобы скрыть ярлыки, найдите раздел реестра
и установите значение параметра «HideIcons»=»1» Запрет использования клавиши Win — Чтобы запретить использование Win, внесите следующие изменеия в реестр (привожу в виде reg файла чтобы не запутаться с вводом значений):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
«Scancode Map»=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5B,E0,00,00,5C,E0,00,00,00,00
Запрет обновления метки последнего доступа к файлам каталога — Если у вас файловая система NTFS, при открытии каталога обновляются метки последнего доступа ко всем файлам этого каталога. Чтобы отключить эту функцию(это ускорит работу системы при большом количестве файлов), необходимо в раздел
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
добавить параметр типа DWORD «NtfsDisableLastAccessUpdate»=»1»
Изменение скорости открытия меню
Все меню Windows XP открываются с определенной задержкой, чтобы изменить время этой задержки, найдите раздел
[HKEY_CURRENT_USER/Control Panel/Desktop] и измениете значения ключа MenuShowDelay
По умолчанию это значение равно 400. Если установить значение равным 0, меню будут открываться значительно быстрее.
Разные полезные ключи системного реестра Windows
Удалить стрелочки на ярлыках можно удалив следующие параметры:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\lnkfile] «IsShortcut»
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\piffile] «IsShortcut»
Список установленных программ можно найти здесь:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrenyVersion\Uninstall]
Если после деинсталляции программы она отображается в списке «Установка и удаление программ» , удалите ненужные программы из списка подразделов этого раздела.
Изменить информацию о зарегистрированном владельце копии Windows можно найдя раздел:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion] и изменив параметры:
«RegisteredOrganization»=Owner» и «RegisteredOwner»=Owner»
Изменить серийный номер Windows можно найдя и изменив параметры следующих разделов:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion] «ProductId=xxxxx-xxx-xxxxxxx-xxxxx
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrenyVersion] «ProductId=xxxxx-xxx-xxxxxxx-xxxxx
[HKEY_LOCAL_MACHINE\SOFTWARE\Internet Explorer\Registration] «ProductId=xxxxx-xxx-xxxxxxx-xxxxx
Программы, которые стартуют автоматически при загрузке системы можно найти в следующих разделах:
[HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunOnceEx]
[HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\RunOnce]
Отключить автозапуск CD можно найдя раздел
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom] и установив значение параметра: «AutoRun» =»0″
Отображать версию Windows в правом нижнем углу экрана — чтобы включить эту опцию, найдите раздел
[HKEY_CURRENT_USER\Control Panel\Desktop] и установите значение параметра «PaintDesktopVersion» =»1″
Изменение раскладки клавиатуры при входе в систему
В диалоговом окне входа в систему, можно видеть индикатор раскладки клавиатуры, при этом раскладка по умолчанию определяется параметрами при установке Windows. Параметры, отвечающие за раскладку в диалоговом окне входа в систему, хранятся в следующих ключах реестра:
[HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]
«1»=»xxx» (основная, по умолчанию)
«2»=»xxx» (дополнительная, переключение)
где «xxx» может принимать значения: «00000409» — английская раскладка и «00000419» — русская раскладка.
Не отображать напоминания Outlook Express
По умолчанию при использовании в качестве почтовой программы Outlook Express в диалоговом окне входа в систему под значком пользователя показывается количество непрочитанных почтовых сообщений. Чтобы удалить эти напоминания, внесите следующие изменения в реестр:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\UnreadMail]
«MessageExpiryDays»=dword:00000000
Параметр dword:00000000 указывает на количество дней, после которого система перестает напоминать о непрочитанных сообщениях.
Не разрывать связь при выходе из системы
По умолчанию если установлено интернет-соединение и пользователь выходит из системы, связь прерывается. Но можно изменить параметры реестра так, что установив соединение под одной учетной записью можно сменить пользователя и продолжить работу не разрывая соединения. Для этого следует внести следующие изменения в реестр: в разделе
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] создайте строковый параметр
«KeepRASConnections» и присвойте ему значение «1»
Удаляем программы из списка автозагрузки с помощью редактора реестра
Несмотря на то, что сегодня можно скачать массу оптимизаторов, позволяющих убрать программы из автозапуска, а последние версии Windows и вовсе содержат инструменты для управления этим параметром, использование редактора реестра не утрачивает актуальность.
Дело в том, что от большинства вредоносного ПО просто невозможно избавиться другим путём, ведь после удаления оно начнёт снова устанавливается при следующей загрузке. Однако, удаление определённых файлов из реестра позволит раз и навсегда решить проблему.
Где найти разделы реестра, отвечающие за автозагрузку?
« Выполнить » ( R+Win ) – regedit – клавиша Enter. Таким образом вы попадаете в редактор реестра.
Нас интересует папка Run , расположенная в левой части окна. У новичков может уйти достаточно много времени на её поиск, ведь они не знают, что она расположена по одному из следующих путей:
• HKEY_LOCAL_MACHINE – Software – Microsoft – Windows – CurrentVersion — Run
• HKEY_CURRENT_USER — Software – Microsoft –Windows – CurrentVersion – Run
Отмечу, что элементы автозагрузки находятся и в других разделах, но я бы не советовал рядовым пользователям отправляться туда, чтобы не нарушить работу системы.
Попав в нужную папку, вы увидите список файлов. Их имена, как правило, совпадают с названиями программ, загрузка которых и будет происходить при запуске системы. Если ваш компьютер был заражён вредоносным ПО, то здесь вы обнаружите массу названий, состоящих из букв и цифр, расположенных в случайном порядке. Убирайте их все без раздумий, даже если они представляются системными файлами.
Какие программы лучше не трогать?
Ни в коем случае не удаляйте из автозагрузки драйверы, особенно те, которые обеспечивают корректную работу графических процессоров. Это позволит избежать возникновения существенных сбоев и сэкономить время, которые вы бы потратили на возвращение упомянутого ПО в автозапуск.
Есть «хитрые» программы, которые мониторят наличие себя в реестре и добавляются снова в случае удаления. Советую перейти в настройки этого ПО и отключить подобную возможность. Стоит отметить, что аналогичную тактику, чаще всего, используют всякие назойливые бесполезные программы, появившиеся на вашем ПК лишь потому, что вы забыли убрать несколько «галочек» при установке.