Qtproject в реестре что это за папка
Пример работы с реестром Windows
Нужно сделать программу, которая показывает список программ из автозапуска! Просто даже не знаю с чего начать работу с реестром, изучаю Qt буквально пару недель, прошу помочь, напишите для примера не сложную програмку, которая показывает работу с реестром, заранее спасибо!
Желательно, что-то типа такого:
Класс TRegistry для работы с реестром Windows
Есть класс TRegistry для работы с реестром операционной системы Windows. И тут же возникает вопрос.
тонкости работы с реестром
есть програма которая по нажатию кнопки творит вот такое чудо void __fastcall.
DLL, функции работы с реестром
Недавно познакомился с DLL. Начал делать дллку. В ней должна быть функция работающая с реестром.
как это не прискорбно, но QSettings не умеет полноценно работать с реестром, где то в нете когда-то нарыл класс для полноценной работы с реестром в Win естественно он юзает WinAPI и ни о какой кроссплатформенности не может идти речи, хотя все что касается реестра не может быть кроссплатформенно
Примечания:
Все функции являются статическими и можно использовать их не создавая переменных класса.
В функцию regWrite можно передавать значения в типах: QByteArray, QString, Int.
Тип HKEY_LIST может принимать значения:
HK_CLASSES_ROOT
HK_CURRENT_USER
HK_LOCAL_MACHINE
HK_USERS
HK_CURRENT_CONFIG
Функции для получения и записи значений реестра:
static QString regReadString(HKEY_LIST,QString path, QString val); //Фукнция для чтения REG_SZ текстовой строки возвращающая QString
static QByteArray regReadArray(HKEY_LIST,QString path, QString val); //Фукнция для чтения REG_BINARY массивов возвращающая QByteArray
static int regReadInt(HKEY_LIST,QString path, QString val); //Фукнция для чтения REG_DWORD возвращающая Int
static bool regWrite(HKEY_LIST,QString path, QString val, QString data, bool createSubKeys=true); //Функция для записи значения из QString в REG_SZ, при флаге createSubKeys=true создаются все ветки если конечного ключа не существует
static bool regWrite(HKEY_LIST,QString path, QString val, QByteArray data, bool createSubKeys=true); //Функция для записи значения из QByteArray в REG_BINARY, флаг createSubKeys делает то что уже написано выше
static bool regWrite(HKEY_LIST,QString path, QString val, int data, bool createSubKeys=true); //Функция для записи значения из int в REG_DWORD, флаг createSubKeys делает то что уже написано выше
static bool regRemove(HKEY_LIST,QString path); //Удаление ключа path со всеми значениями. Удаление не произойдет если существуют подветки
static bool regRemove(HKEY_LIST,QString path, QString val); // Удаление значения val из ветки path
если удалось удалить ветку то обе функции возвратят true если нет то false
Системные функции:
static QString shellUserName(); //Возвращает Имя текущего пользователя
static QString shellComputerName(); //Возвращает Имя компьютера
static QString shellUserTemp(); //Возвращает путь временной папки пользователя
static QString shellSystemTemp(); //Возвращает системный путь временной папки
static QString shellWindowsDir(); //Возвращает путь к папке Windows
static void shellSetTempDir(QString); //Изменяет путь временной папки пользователя и системы на указанную
Пример записи в реестр:
JulyRegApi::regWrite(JulyRegApi::HK_LOCAL_MACHINE,»SOFTWARE\ \GigaSOFT\\SomeSoft»,»SomeKeyName»,QString(«Text writed there»));
в результате будет записано текст «Text writed there» в ключ «SomeKeyName» который находиться в ветке «HKEY_LOCAL_MACHINE\SOFTWARE\GigaSOFT\SomeSoft»
такой же формат записи в реестр для этой функции типов QByteArray и Int
Пример чтения из реестра:
QString myValue;
myValue=JulyRegApi::regReadString(JulyRegApi::HK_LOCAL_MACHI NE,»SOFTWARE\\GigaSOFT\\SomeSoft», «SomeKeyName»);
в результате myValue примет значение ключа «SomeKeyName» из ветки «SOFTWARE\\GigaSOFT\\SomeSoft»
если перед этим выполнить запись из примера выше то myValue==»Text writed there»;
Формат параметров для функций regReadArray и regReadInt такой же как и в этом примере regReadString но возвращают они другой тип QByteArray и Int соответственно.
kak.torange.ru
В файлах SYSTEM.DAT и USER.DAT в каталоге Windows 95/98 или в папке C:\W\System32\Config\ в Windows NT хранится так называемый системный реестр, содержащий большое количество информации. Кроме записей, необходимых Windows, большинство программ при установке записывают туда и свою собственную информацию. Чтобы внести изменения в реестр, необходимо открыть его с помощью программы, предназначенной для этого. Примером может служить программа REGEDIT, поставляемая в стандартном комплекте Windows. Для ее запуска откройте диалоговое окно Пуск/Выполнить, введите Regedit и нажмите OK.
Вы увидите окно, разделенное на две части. В левой находится навигатор, похожий на навигатор Проводника, а справа собственно информация. Реестр состоит из шести разделов: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG и HKEY_DYN_DATA. В каждом разделе содержатся папки. Если в папке или разделе есть подпапки, то слева от этой папки находится значок «плюс«. При нажатии на него эта папка «разворачивается», а значок превращается в «минус«, нажав на который ее можно снова «свернуть«. Если же нажать на значок папки или ее название, то в правом окне появится список тех параметров, которые содержатся в этой папке (но не в подпапках!). Каждый параметр состоит из его имени и значения. Для каждого параметра существует свой путь, по которому его можно найти. Путь состоит из последовательности папок, в которых находится этот параметр, начиная с родительской папки (это один из шести вышеперечисленных основных разделов). Примером такого пути может быть HKEY_CURRENT_CONFIG\ Display\ Settings, а названием параметра Resolution. В объединении эти два значения — параметр и путь к нему (его часто называют адресом) указывают на уникальный параметр. Например, к двум различным параметрам может быть один и тот же путь, два параметра могут иметь одинаковые названия, но лежать в различных папках и подпапках, но не может существовать двух параметров с одинаковым адресом и именем. По реестру можно осуществлять поиск (используя меню, или сочетанием клавиш CTRL + F).
Выделив нужный раздел (нажав на значок раздела или его имя), в нем можно создать параметр, или подраздел. Для этого необходимо воспользоваться меню Правка/Создать. В системном реестре Windows существует 3 вида параметров: строковой, двоичный, и DWORD. В строковом хранится одна строка (string), в двоичном — двоичное значение, в DWORD — десятичное или шестнадцатеричное значение. При создании параметра необходимо указать его имя. Затем, дважды нажав на нем в правом окне, можно ввести значение параметра (или изменить существующее).
Если в совете сказано установить значение параметра, это значит, что необходимо изменить существующее значение параметра на нужное, или, если параметр с таким именем отсутствует, создать его, а затем изменить содержимое.
В конце работы для большинства изменений необходимо закрыть REGEDIT и перезагрузить компьютер.Ну, во-первых разберемся, что это такое: реестр Windows. Когда мы устанавливаем или удаляем программы, изменяем параметры Windows ставим новое оборудование, все это фиксируется и записывается в реестр. Можно сказать так, реестр — это сердце Windows. Чтобы посмотреть или отредактировать реестр надо запустить программу Regedit (Пуск — Выполнить — Regedit). Физически, реестор хранится в каталоге Windows (95/98) под именами User.dat и System.dat. Сразу говорю, если не знаете то, что хотите изменить на 100% не изменяйте, а иначе грош цена. Ну, а для тех кто все таки изменил даю подсказку. При удачной загрузке, Windows делает резервные копии реестра под именами User.da0 и System.da0. Этим и воспользуемся. Конечно можно создать свои резервные копии на всякий «пожарный». Если Windows не грузится, то при загрузке зажимаем Ctrl. Как появиться меню выбираем «Command prompt only«, переходим в папку Windows («CD C:\Windows») и наберите команду scanreg / restore (в Windowse NT — rdisk). Теперь перезагрузитесь и Windows должен запуститься. Если такой программы нет, то придется набирать в командной строке из папки Windows:
Ну, а теперь перейдем непосредственно к реестру.
1.)Откройте regedit, найдите ключ
Здесь Вы найдете полный список установленных программ. Если каких то программ уже нет, удалите ненужные папки с их названиями (неполный список отображается в «Панель управления — Установка и удаление программ»).
находится список всех запускающихся программ при загрузке Windows. Вы можете удалить ненужную программу, а можете и добавить. Для этого надо создать Строковый параметр, для имени надо ввести название программы, а в качестве значения параметра ввести путь к программе. Если на Вашем компьютере несколько пользователей, то списки программ могут быть здесь:
HKEY_USERS\.DEAFAULT\Software\Microsoft\Windows\CurrentVersion и
HKEY_USERS\(Имя пользователя)\Software\Microsoft\Windows\CurrentVersion
3.)Вот и все, разминка закончена, и мы переходим к Главному меню.
Чтобы избавиться от пункта Избранное (Windows 98), зайдите в раздел
и создайте здесь Двоичный параметр NoFavoritesMenu со значением 01 00 00 00. Все! Теперь пункт Избранное больше появляться не будет. Удалите созданный параметр или измените его значение на 00 00 00 00, чтобы вернуть пункт на место. Избавляться от других пунктов можно аналогично:
Документы — параметр NoRecentDocsMenu
Настройки — NoSetFolders
Найти — NoFind
Завершение работы — NoClose
Завершение сеанса… — NoLogOff.
Также можно отменить работу правой кнопкой мыши в главном меню, для этого создайте тамже DWORD-параметр под именем NoChangeStartMenu с значением 1. Готово! Ну и последние штрихи. Нравится сообщение о том, с какой кнопки следует начать работу? Нет? Тогда создаем DWORD-параметр с именем NoStartBanner и значением 1.
и создайте Строковый параметр LegalNoticeCaption. В качестве значения введите «Обнаружен вирус «Чернобыль»», создайте еще один строковый параметр LegalNoticeText с значением «Нажмите «Ок» и все данные на жестком диске будут уничтожены». Перезапустите Windows и наслаждайтесь результатом. В первом параметре вписываем заголовок, а во втором — сам текст.
5.)Теперь можно изменить часики в нижнем правом углу. Зайдите на
и создайте строковый параметр sTimeFormat
Его значение «HH:mm«, где HH — часы, : — разделительный знак, а mm — минуты. Для вступления в силу изменений необходима перезагрузка. Весело посмотреть как друг будет мучится настраивать часы если поменять местами HH и mm! Ну, а если хотите нагадить очень силно, тогда надо сделать так: Hm:mH’mH;Hm и тд.
6.)Чтобы не было в значках ярлыков стрелочек, найдите ключ HKEY_CLASSES_ROOT\Piffile и удалите параметр IsShortcut, тоже самое следует проделать в папке Lnkfile. Перезагрузите компьютер и наслаждайтесь результатом.
7.)Путь к инсталляционным файлам Windows 95/98 лежит в
Измените его и Windows будет искать установочные файлы при добавлении компонентов или изменении параметров системы.
8.)Чтобы убрать «ладошку» с зашареных ресурсов, достаточно удалить значении По умолчанию из ключа
9.)Еще Вы можете вообще убрать с рабочего стола все значки. Для этого создайте в ключе
DWORD-параметр с именем «NoDesktop«. Перезагрузитесь и увидете самый чистый в мире Рабочий стол.
10.)Для того, чтобы скрыть диски в проводнике, заходим в
и создаем здесь Двоичный параметр с именем «NoDrives».
Значение будет зависить от того, какие диски хотите скрыть:
Диск A — значение 01 00 00 00
B — 02 00 00 00
C — 04 00 00 00
D — 08 00 00 00
E — 10 00 00 00
F — 20 00 00 00
Если хотите скрыть несколько дисков, то нужно просуммировать их значения. Но учтите, что эти числа шестнадцатеричные. Чтобы верно рассчитать, воспользуйтесь калькулятором (Программы — стандартные — Калькулятор). Выберите в меню Калькулятора «Вид — Инженерный«, затем выберите «Hex» и просчитайте. Например, чтобы скрыть диски C и D надо плюсовать 04 00 00 00 и 08 00 00 00. Вводим в значение параметра 0C 00 00 00. Чтобы скрыть диски A и E надо просуммировать 01 00 00 00 и 10 00 00 00, получаем результат 11 00 00 00.
11.)Откройте Свойства: Экран, здесь и поскрываем некоторые вкладки. В редакторе реестра найдите раздел
создайте здесь DWORD-параметр с именем NoDispBackgroundPage и значением 1. Теперь вкладка Фон отображаться не будет. Остальные вкладки скрываются следующими параметрами:
NoDispAppearancePage — Оформление
NoDispScrSavPage — Заставка
NoDispSettingPage — Настройка.
12.)Теперь сделаем так, чтобы пункт Открыть с помощью… всегда появлялся в контекстном меню. Для этого найдем ключ HKEY_CLASSES_ROOT\*\ и создадим в нем раздел shell (если его нет). Здесь создадим еще раздел «openas«, а в нем еще «command«. Измените значение «По умолчанию» на «C:\WINDOWS\rundll32.exe shell32.dll,OpenAs_RunDLL %1«. Готово, можете проверять.
13.)Для изменения скорости выпадания Главного меню зайдите в ключ
и создайте Строковый параметр Menu Show Delay. В значение введите время задержки (в миллисекундах) и перезагрузитесь.
14.)Сейчас попробуем пункт Открыть в Блокноте поместить в контекстное меню. Зайдем в раздел HKEY_CLASSES_ROOT\*\shell (Если нет — создайте). Создайте раздел «Open» и измените По умолчанию на «Открыть в Блокноте«. Теперь создайте раздел «command» а в нем измените По умолчанию на «notepad.exe %1«. Готово.
15.)А сейчас поиграемся с Internet Explorer’ом. Хотите изменить обои браузера? Пожалуйста. Зайдите в ключ
и создайте Строковый параметр «BackBitmap«. А в качестве параметра введите путь к рисунку в формате Bmp и перезапустите браузер. Но это еще не все.
создайте новый Строковый параметр Window Title. В значении введите то, что вы желаете увидеть в заголовке после названия страницы, перезапустите браузер и наслаждайтесь. Точно также будет выглядить и проводник.
16.)Если Вы хотите любоваться именем или просто словом после часов в Systray (нижняя панель) то зайдите на
и создайте два строковых параметра: s1159 и s2359. В их значение следует ввести нужное имя. Ограничение — 8 букв.
17.)Когда надо перезапустить реестр, а перезагружать машину не охота, то в некоторых случаях поможет следующее: нажмите Ctrl+Alt+Del, затем выберите Explorer и кнопку «Завершить задачу». На предложение выключить машину отвечайте отказом, затем жмите «Снять задачу» в следующем окне, после чего увидите, как исчезла и появилась «Панель задач«.
Не все работает в Windows 95
Восстановление реестра
При работе с реестром надо соблюдать осторожность. Удаление каких-либо важных данных случайно или по незнанию может привести к краху операционной системы. Тогда спасти положение может только восстановление последней работоспособной копии.
Если Вы собрались поэкспериментировать с реестром, предварительно сохраните на диске файлы SYSTEM.DAT и USER.DAT. Они находятся в каталоге, куда была установлена операционная система и имеют атрибуты «только для чтения» и «скрытый». В случае если реестр будет серьезно испорчен, Вы сможете переписать эти файлы в каталог Windows, установить нужные атрибуты и реестр будет как новенький. Только не вздумайте восстанавливать эти файлы, когда загружен Windows, иначе система накроется окончательно и спасет ее только полная переустановка! Для восстановления этих файлов надо предварительно перезагрузиться в DOS и уже там заменять испорченные файлы хорошими.
Но это не единственный вариант восстановления данных. Дело в том, что операционная система, при каждом удачном запуске сохраняет копию реестра в CAB-файле, который записывается в скрытый каталог SYSBCKUP каталога Windows. По умолчанию, хранятся последние пять копий. Это число может варьироваться от 0 до 99 и устанавливается значением ключа MaxBackupCopies в файле scanreg.ini в каталоге Windows. Правда не стоит устанавливать слишком большое значение, т.к. файлы занимают немало места (один файл имеет размер больше мегабайта).
Чтобы восстановить реестр с одной из этих резервных копий надо перезагрузиться в DOS и выполнить команду
Появится список доступных резервных копий реестра отсортированных по времени их создания. После выбора нужной копии данные будут благополучно восстановлены, и Вы получите реестр, отвечающий состоянию дел на момент его создания.
Но если Вы устанавливали какие-то программы или меняли настройки операционной системы в промежуток между последней резервной копией и сбоем в реестре, то все эти данные безвозвратно пропадут. Надо ли нам это? Однозначно нет! Чтобы в любое время создать резервную копию реестра воспользуйтесь командой
которая в случае нормально прошедшей проверки создаст резервную копию.
Еще один вариант резервирования и восстановления реестра состоит в экспортировании раздела или целой ветви, которую Вы планируете изменять. Это можно осуществить в Regedite для Windows в меню «Реестр». Выделите нужный раздел и щелкните по пункту «Экспорт файла реестра». После задания имени файла данные этого раздела будут в него экспортированы. Файл имеет расширение REG. Для его импортирования в реестр достаточно дважды щелкнуть на нем и данные будут перенесены. Правда этот способ восстановления информации имеет один существенный недостаток: все удаленные или измененные записи будут восстановлены, но вот добавленные записи удалены не будут. Поэтому данный способ больше подходит, если Вы проводите какие-то несущественные изменения, и чтобы откатить их не вводя старые данные заново, можно воспользоваться экспортом/импортом.
Вообще, работать с реестром надо крайне осторожно, но если Вы будете периодически резервировать его, то никаких проблем возникнуть не должно
Как удалить «ненужные» записи из списка «Открыть с помощью».
Пункт контекстного меню «Открыть с помощью» (Open With List) часто используется для открытия запускаемых программ. Операционная система Windows предлагает программы для открытия соответствующего файла. С течением времени, в этом списке может скопиться довольно много программ, иногда и не предназначенных для открытия файла, который требуется открыть.
Довольно часто бывают такие ситуации, что для открытия неизвестного операционной системе файла, в контекстном меню Проводника «Открыть с помощью» попадают программы, которые совсем не предназначены для работы с файлом, который нужно открыть.
Можно просто по ошибке попробовать открыть файл и после этого такая программа добавиться в список программ, которые предназначены для открытия данного файла. Поэтому желательно удалить запись о ненужной программе из контекстного меню. «>
Рассмотрим ситуацию, когда список программ, которые предназначены для просмотра изображений попал, например, текстовый редактор Word. На самом деле я сам поместил эту программу в этот список для того, чтобы показать, как удалить ненужную программу из списка контекстного меню «Открыть с помощью».
На примере файл изображения в формате «JPEG». При открытии файла с помощью контекстного меню — «Открыть с помощью», среди программ, предназначенных для этого, присутствует текстовый редактор Microsoft Office Word.
Можно выбрать пункт контекстного меню «Выбрать программу…». В этом случае в окне «Выбор программы» также будет присутствовать программа, которая не предназначена для открытия файла данного расширения.
Удаление из списка «Открыть с помощью» в Редакторе реестра
Неправильно выбранную программу нужно будет удалить из контекстного меню с помощью «Редактора реестра». В системном реестре будет удалена всего одна запись, которая относится к конкретной программе.
В «Редактор реестра» можно войти нажав на клавиатуре клавиши «Windows» + «R», а затем в окне «Выполнить» нужно будет ввести выражение «regedit», а после этого нажать на кнопку «ОК», или нажать на клавиатуре на клавишу «Enter».
В «Редактор реестра» можно попасть и другим способом. Для этого следует войти в меню «Пуск», в поле «Поиск» ввести выражение «regedit», после вывода результатов поиска нужно нажать на изображение программы «regedit».
После появления окна «Контроль учетных записей пользователей», в котором нужно согласиться на изменения, появляется окно «Редактор реестра».
В окне «Редактор реестра» нужно будет щелкнуть два раза последовательно по перечисленным пунктам (папкам) «HKEY_CURRENT_USER» => «Software» => «Microsoft» => «Windows» => «CurrentVersion» => «Explorer» => «File Exts».
Полный путь расположения расширения файла:
В папке «File Exts» необходимо выбрать расширение файла, у которого в контекстном меню нужно удалить запись о программе, с помощью которой можно открыть файл. В нашем случае это расширение «.jpg». Затем в папке «OpenWithList» следует выбрать программу, запись о которой нужно удалить. На нашем примере это — «WINWORD.EXE».
Нужно выделить соответствующую запись. Далее после выделения записи, нужно нажать на выделенную запись правой кнопкой мыши и затем в контекстном меню выбрать пункт «Удалить», или нажать для этого на клавиатуре на клавишу «Del».
В окне, с появившемся предупреждением, нужно нажать на кнопку «Да».
После этих действий можно закрыть «Редактор реестра». Произведенные изменения в реестре вступили в силу без перезагрузки компьютера.
В дальнейшем при открытии файла с помощью пункта контекстного меню «Открыть с помощью», записи ненужной программы уже не будет.
https://vellisa.ru/wp-content/uploads/2012/10/5-624×567.png 624w» sizes=»(max-width: 688px) 100vw, 688px» />
Не всегда завершается успехом удаление записей в данной ветке реестра.
Посмотрите еще на две ветки реестра, в которых могут находиться записи о «ненужных» программах:
Если запись в контекстном меню осталась, проверьте также еще эти ветки реестра.
Исправление неправильной ассоциации файлов
Для сложных случаев, когда неверно выбраны приложения для открытия многих типов файлов, используйте любой из 7 способов восстановления ассоциации файлов в Windows.
После выполнения действий по изменению ассоциации файлов, файлы будут отрываться с помощью правильных приложений.
Выводы статьи
Таким способом можно убрать из контекстного меню «Открыть с помощью» ненужные записи о программах, которые попали в этот список по ошибке. В следующий раз при запуске программы ненужные записи уже не будут вводить в заблуждение пользователя.