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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   обхождение {clsid} с записью параметров (http://forum.oszone.net/showthread.php?t=277839)

semiono 16-02-2014 18:55 2310013

обхождение {clsid} с записью параметров
 
Нужно вот так вот сделать:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume\{bd98a5e0-975a-11e3-824f-806e6f6e6963}]
"MaxCapacity" DWORD = NULL
"NukeOnDelete" DWORD = 0x1

Ключей может быть много и вероятно они непредсказуемы. Хотелось бы хороший код на AutoIt и на CMD/BAT.

Вот нашёл http://msdn.microsoft.com/en-us/libr...code-snippet-1
наверное в AutoIt исполнить можно..

Iska 16-02-2014 19:34 2310031

А у меня там вот так:
читать дальше »
Код:

╔═════ REG2:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket ╤═════╗
║и                                  Имя                                    │Размер│  Дата  │Время║
║⌂..                                                                      │ Вверх│        │    ║
║├c                                                                        │ Папка│15.02.14│08:35║
║├e                                                                        │ Папка│14.02.14│04:24║
║├h                                                                        │ Папка│15.02.14│08:35║
║                                                                          │      │        │    ║
║                                                                          │      │        │    ║


:).

Цитата:

Цитата semiono
Ключей может быть много и вероятно они непредсказуемы. »

Вполне предсказуемы. Похоже на GUID. Надо только выяснить, каким правилам они («{bd98a5e0-975a-11e3-824f-806e6f6e6963}») подчиняются. А затем воспользоваться «RegEnumKey()» для перебора и «StringRegExp()» для проверки имени раздела на соответствие правилам формирования GUID'ов, примерно так же, как Вы указали:
Цитата:

Цитата semiono
Вот нашёл http://msdn.microsoft.com/en-us/libr...code-snippet-1 »

и при соответствии — писать в реестр значения параметров.

Цитата:

Цитата semiono
и на CMD/BAT. »

Без сторонних средств — это вряд ли: весь RegExp ограничен весьма куцым набором для «findstr.exe».

XXXler 16-02-2014 23:44 2310193

semiono, смысл в отключении корзины? Тогда RegExp не нужен, перебираете имеющиеся ключи с пом. RegEnumKey / reg query и добавляете во все найденные эти значения.

Цитата:

Цитата Iska
А у меня там вот так: »

XP, вестимо.

Iska 16-02-2014 23:49 2310198

Цитата:

Цитата XXXler
XP, вестимо. »

Вестимо ;).

Потому:
Цитата:

Цитата XXXler
Тогда RegExp не нужен, перебираете имеющиеся ключи с пом. RegEnumKey / reg query и добавляете во все найденные эти значения. »

никак низзя.

XXXler 17-02-2014 00:10 2310207

Цитата:

Цитата Iska
никак низзя. »

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

Код:

Dim $i, $Key

While Not @error
        $i += 1

        $Key = RegEnumKey ("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume", $i)
        If Not @error Then
                RegWrite ("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume\" & $Key, "MaxCapacity", "REG_DWORD", 0)
        EndIf
Wend


Iska 17-02-2014 00:14 2310211

Цитата:

Цитата XXXler
т.к. подраздела Volume там нет, »

Логично. Просмотрел. Но гарантировано ли то, что там, в «…\Volume», не будет ничего другого?

semiono 17-02-2014 00:40 2310216

Цитата:

Цитата XXXler
смысл в отключении корзины »

У меня всегда корзина выключена, на XP всегда так юзал, сейчас перебираюсь на Win 8.1.
Не нашёл даже графического способа нет всё разом отключить, нужно в каждый раздел указывать, а у меня их немало.
А предупреждение об удалении лучше вернуть, ато опасно)
:)

RegEnumKey - до меня не очень доходит смысл этой функции, поэтому всегда избегал подобное)
Ну перечисляет ключи, а дальше что? Всмысле они доступны все найденные где-то в выводе функции?
Хотя надо раскрыть автоит и посмотреть с чем это в паре работает, просто у меня всё запущенно с автоитом)
Я всё на C++ поглядывал, но идея RegEnumKey мне непонятна до сих пор.

XXXler 17-02-2014 01:02 2310229

Цитата:

Цитата Iska
Логично. Просмотрел. Но гарантировано ли то, что там, в «…\Volume», не будет ничего другого? »

Там указываются GUID томов, абсолютно уникальные значения. Можно конечно сопоставлять их с содержимым HKLM\System\MountedDevices или банально проверять есть ли в ключе параметр MaxCapacity, но, имхо, это лишнее.

Цитата:

Цитата semiono
RegEnumKey - до меня не очень доходит смысл этой функции, поэтому всегда избегал подобное) »

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

Iska 17-02-2014 05:21 2310284

Цитата:

Цитата XXXler
Там указываются GUID томов, абсолютно уникальные значения. »

Это-то понятно. Я про другое:
Цитата:

Цитата Iska
Но гарантировано ли то, что там, в «…\Volume», не будет ничего другого? »


semiono 18-02-2014 17:30 2311214

Мне кажется эту тему можно пополнить примерами рег-экспов и тогда закрыть.

:)

XXXler 18-02-2014 21:48 2311393

semiono, RegExp это регулярные выражения для обработки текста, а не какая-то магическая команда по считыванию GUID из реестра, т.ч. что за примеры вам нужны с RegExp лично мне непонятно

Iska 19-02-2014 01:39 2311521

XXXler, наверное, имеется в виду текст шаблона. С другой стороны, достаточно задать поиск по RegExp GUID - Поиск в Google — всё давно разжёвано донельзя.


Время: 11:26.

Время: 11:26.
© OSzone.net 2001-