PDA

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


semiono
16-02-2014, 18:55
Нужно вот так вот сделать:

[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/library/30wbz966(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
наверное в AutoIt исполнить можно..

Iska
16-02-2014, 19:34
А у меня там вот так:
╔═════ 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║
║ │ │ │ ║
║ │ │ │ ║
:).

Ключей может быть много и вероятно они непредсказуемы. »
Вполне предсказуемы. Похоже на GUID. Надо только выяснить, каким правилам они («{bd98a5e0-975a-11e3-824f-806e6f6e6963}») подчиняются. А затем воспользоваться «RegEnumKey()» для перебора и «StringRegExp()» для проверки имени раздела на соответствие правилам формирования GUID'ов, примерно так же, как Вы указали:
Вот нашёл http://msdn.microsoft.com/en-us/libr...code-snippet-1 »
и при соответствии — писать в реестр значения параметров.

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

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

А у меня там вот так: »
XP, вестимо.

Iska
16-02-2014, 23:49
XP, вестимо. »
Вестимо ;).

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

XXXler
17-02-2014, 00:10
никак низзя. »
под 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
т.к. подраздела Volume там нет, »
Логично. Просмотрел. Но гарантировано ли то, что там, в «…\Volume», не будет ничего другого?

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

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

XXXler
17-02-2014, 01:02
Логично. Просмотрел. Но гарантировано ли то, что там, в «…\Volume», не будет ничего другого? »
Там указываются GUID томов, абсолютно уникальные значения. Можно конечно сопоставлять их с содержимым HKLM\System\MountedDevices или банально проверять есть ли в ключе параметр MaxCapacity, но, имхо, это лишнее.

RegEnumKey - до меня не очень доходит смысл этой функции, поэтому всегда избегал подобное) »
RegEnumKey (http://www.autoitscript.com/autoit3/docs/functions/RegEnumKey.htm) выдает имя подраздела (результат) из указанного раздела (первый параметр) с указанным порядковым номером (второй параметр) . Перебирая по-порядку значения второго параметра можно получить список всех подразделов указанного раздела. Цикл перебора обрывается возникновением ошибки при невозможности получить имя подраздела с несуществующим индексом

Iska
17-02-2014, 05:21
Там указываются GUID томов, абсолютно уникальные значения. »
Это-то понятно. Я про другое:
Но гарантировано ли то, что там, в «…\Volume», не будет ничего другого? »

semiono
18-02-2014, 17:30
Мне кажется эту тему можно пополнить примерами рег-экспов и тогда закрыть.

:)

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

Iska
19-02-2014, 01:39
XXXler, наверное, имеется в виду текст шаблона. С другой стороны, достаточно задать поиск по RegExp GUID - Поиск в Google (https://www.google.ru/search?q=RegExp+GUID) — всё давно разжёвано донельзя.




© OSzone.net 2001-2012