Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   создание и удаление параметров реестра по клику на чекбоксы (http://forum.oszone.net/showthread.php?t=224082)

vzli_izv 29-12-2011 22:10 1825215

создание и удаление параметров реестра по клику на чекбоксы
 
Имеем: строковые параметры реестра (таблица в конце страницы)

При запуске программы создать ветку HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl (если она уже есть - ничего не делать)
Нужно: иметь чекбоксы с названиями аплетов. (или что-то, что позвjляло)
Действие по установке галочки - записать строку в реестр.
Действие по снятии галочки - удалить строку.

Теперь болтовня ))
Как вы поняли, хочется по клику на чекбоксе записать строковой параметр в ветку HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl
с значением, соответствующим какому то аплету панели управления, для его сокрытия\показа. Примерно как показать\спрятать скрытые папки и файлы в проводнике, но в Панели управления.

как ПРОЩЕ ВСЕГО реализовать это?
Реализовывать это в .bat не удобно.
Много аплетов, на каждый надо вешать 3 клавиши (для [1] записи, [2] удаления и [3] пропуск).
Нет доступа ко всем аплетам сразу, только по мере пропуска ненужных можно добраться до нужных.
Конечно можно на один аплет сделать 2 .batка: первый записывает в реестр, второй удаляет и так на каждый аплет, а потом их запихать в какой нибудь PortableApps, RunMe и другой оболочке для запуска программ. Это для удобства работы с таким кол-вом файлов.

Попробовал программу Алгоритм . Не понравилось.
Делфи тяжеловато будет вспомнить.

Есть ли ещё варианты, может я упустил чего из возможностей?

neo21 30-12-2011 01:05 1825300

Можно сделать в Visual Basic 2010


Код:

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl")

        MsgBox("Раздел создан")
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        My.Computer.Registry.CurrentUser.DeleteSubKey(
    "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl")

        MsgBox("Раздел удален")
    End Sub

   
End Class

Кнопка запись -записывает раздел HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl, кнопка удаление - удаляет раздел

ferget 30-12-2011 02:14 1825327

neo21, вообще-то требуется изменить значение в разделе, а не сам раздел

но учитывая
Цитата:

Цитата vzli_izv
Делфи тяжеловато будет вспомнить. »

bat-файлы, в данном случае, лучший вариант

neo21 30-12-2011 02:37 1825336

ferget, В VB это тоже не сложно сделать
Типичные операции с реестром (Visual Basic)
Задание значений:
Код:

My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl",
          "Параметр", "Значение")


vzli_izv 30-12-2011 10:04 1825419

добавляю так
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl" /v "1" /t REG_SZ /d "Брандмауэр Windows" /f >nul

а как удалить этот REG_SZ "1" "Брандмауэр Windows" без удаления раздела HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl ?


хы...ток написал и тут же ответ нашёл ))
reg.exe delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl" /v "1" /f
_____________________________________________________________

мде...очень всё не удобно получается...жаль не знаю Visual Basic
так бы я сделал ListBox с показом всех файлов в каталоге программы и по клику на названии просто запускал бы.
может кто сварганит такой запускатор? Form1+ListBox (с показом файлов в каталоге программы ) и кнопка удалить весь раздел
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl

а я бы батники сделал и получилась бы маленькая програмка, её тут выложить и пусть люди пользуются.

Iska 30-12-2011 14:01 1825582

vzli_izv, вообще-то данная программа уже давно существует. Существует она ещё со времён Windows 9x. В NT-версиях называется «Редактором групповой политики» (оснастка «gpedit.msc» — для локальной машины), например:

Использование редактора групповой политики для управления политикой локальных компьютеров в Windows XP
Параметры групповой политики для панели управления
Executing Control Panel Items
Панели управления Windows - кто тут главный? - № 04, 2003 | «Мир ПК» | Издательство «Открытые системы»

Если Вам покажется неудобным добавлять «ручками» канонические имена/имена модулей элементов панели управления — ничто не мешает написать и распространять свой собственный шаблон с уже готовыми списками имён. Детали создания собственного шаблона зависят от того, под какой ОС Вы планируете применять его.

neo21 30-12-2011 20:26 1825778

Вложений: 1
Цитата:

Цитата vzli_izv
может кто сварганит такой запускатор? Form1+ListBox (с показом файлов в каталоге программы ) »


Скиньте .bat файлы в папку files

Кнопка открыть фаил - открывает .bat файлы

Кнопка удалить раздел - удаляет раздел HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl

для запуска программы установите Microsoft .NET Framework 4

vzli_izv 01-01-2012 06:58 1826365

neo21, благодарю!
и можно вопрос? тебе не жалко будет потратить 1 час времени (но тут зависит от твоих знаний) и вот в этой програмульке добавить пару нужностей?
есть пара интересных идей, на мой взгляд, но я не смогу их реализовать. к моему сожалению.

Delirium 01-01-2012 08:42 1826380

Цитата:

Цитата neo21
для запуска программы установите Microsoft .NET Framework 4 »

А что, для этих опций обязательно 4 фреймворк? Наворачивать эту громадину ради такой задачи. Второго для этих целей более чем достаточно.

vzli_izv 01-01-2012 20:54 1826622

Цитата:

Цитата Delirium
обязательно 4 фреймворк? »

не знаю у кого как а у меня фреймворк ставится по умолчанию, как кодеки, например.Начиная ещё с 1.1 и до 4.
Может просто у меня программ его требующих много, не могу сказать точно.

Drongo 01-01-2012 22:56 1826661

vzli_izv, У вас да, а если придётся применять утилиту там где его нету?

vzli_izv 02-01-2012 00:49 1826701

думаю там, где его нету, тому и не нужно ))

neo21 02-01-2012 04:07 1826730

Цитата:

Цитата Delirium
А что, для этих опций обязательно 4 фреймворк? Наворачивать эту громадину ради такой задачи. Второго для этих целей более чем достаточно. »

Если установить второй будет выдавать ошибку:

Причина:

ferget 02-01-2012 04:29 1826732

смените исполняющую среду на .NET Framework 2.0 и ошибки не будет

neo21 02-01-2012 04:32 1826733

Цитата:

Цитата ferget
смените исполняющую среду на .NET Framework 2.0 и ошибки не будет »

Ну это понятно и vzli_izv четвертый подходит, так что смысла переделывать нет.

Цитата:

Цитата vzli_izv
и можно вопрос? тебе не жалко будет потратить 1 час времени (но тут зависит от твоих знаний) и вот в этой програмульке добавить пару нужностей?
есть пара интересных идей, на мой взгляд, но я не смогу их реализовать. к моему сожалению. »

Какие нужности?

vzli_izv 02-01-2012 10:41 1826775

Вложений: 1
Программка из 1го exe'шника

Панель слева - только папки в директории exe'шника.
Дерево папок отображает подкаталоги.
Клик по каталогу открывает файлы в правой панели.
Переход на уровень выше расположения exe'шника запретить.
Снизу кнопочка "обновить" обновляет дерево папок.

Желательно:
цифровое упорядочивание каталогов 00>01>02>03 и тд.



Панель слева отображает все файлы в папках.

Желательно:
слева отображать расширения, справа названия.
чередование цвета строк (что бы удобнее было)
возможность группировать по расширению (как на картинке)
шрифт и высота строк достаточной для удобного клика, без боязни залезть на другую строку и вглядывания.

если с группировкой и расширениями возиться лень, тогда просто название с расширением и хотя бы чередование цвета строк.


Если стоит галочка на CheckBox "Всё разом", тогда по клику кнопки "Запустить" ВСЕ файлы в папке запустить., .


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

Внешний вид примерно как на картинке.


Время: 02:35.

Время: 02:35.
© OSzone.net 2001-