Показать полную графическую версию : Добавление пользовательских пунктов в контекстное меню (файлы, папки и т.д.)
Страниц :
1
2
3
4
[
5]
6
7
8
Peredreifus
20-07-2009, 21:29
Добавление пункта "Создать папку" в контекстное меню на первое место
Как работает:
Запускаем скрипт. В контекстном меню открытой папки на первом месте появляется пункт "Создать папку". Все, можно пользоваться. Чтобы удалить этот пункт, нужно еще раз запустить этот скрипт.
Set WShell = CreateObject("WScript.Shell")
' Если скрипт запущен с параметром, то..
If WScript.Arguments.Count>0 Then
Randomize Timer
' Запрашиваем имя папки. В качестве стандартного имени будет "Новая Папка NN", где NN - случайное число от 10 до 99
Name=InputBox("Имя папки:", "Создать папку", "Новая Папка "&Int((99-10+1)*Rnd+10))
' Если пользователь нажал кнопку Отмена, то выходим из скрипта
If Name="" Then WScript.Quit
' Создаем папку с указанным именем
WShell.run "cmd /C md """&Name&"""", 0
Else
' Если скрипт запущен без параметров, то..
' Если запись в реестре есть, то удаляем наш раздел
If WShell.Run("cmd.exe /C REG QUERY ""HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку""", 0, True)=0 Then
WShell.Run "cmd /C REG DELETE ""HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку"" /f", 0
Else
' Иначе добавляем запись в реестр
' Иконка папки
WShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку\Icon", "%SystemRoot%\System32\shell32.dll,3", "REG_SZ"
' Ставим наш пункт в самый верх контекстного меню
WShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку\Position", "Top", "REG_SZ"
' Прописываем действия, которые будут выполняться при клике по нашему пункту меню
WShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку\command\", "wscript.exe """&WScript.ScriptFullName&""" -folder", "REG_SZ"
End If
End if
nexochyka
27-07-2009, 15:36
Randomize Timer ' Запрашиваем имя папки. В качестве стандартного имени будет "Новая Папка NN" »
Вопрос: Peredreifus, Как вместо названия поставить дату в формате YYYY_MM_DD
Peredreifus
27-07-2009, 21:26
Вопрос: Peredreifus, Как вместо названия поставить дату в формате YYYY_MM_DD »
Set WShell = CreateObject("WScript.Shell")
' Если скрипт запущен с параметром, то..
If WScript.Arguments.Count>0 Then
Randomize Timer
' Запрашиваем имя папки. В качестве стандартного имени будет дата в формате YYYY_MM_DD
' Проверяем, если число месяца или дня состоит из одного разряда, то добавляем перед ним ноль, иначе оставляем как есть
If Len(Month(Now))<2 Then tempMonth="0"&Month(Now) Else tempMonth=Month(Now)
If Len(Day(Now))<2 Then tempDay="0"&Day(Now) Else tempDay=Day(Now)
Name=InputBox("Имя папки:", "Создать папку", Year(Now)&"_"&tempMonth&" "&tempDay)
' Если пользователь нажал кнопку Отмена, то выходим из скрипта
If Name="" Then WScript.Quit
' Создаем папку с указанным именем
WShell.run "cmd /C md """&Name&"""", 0
Else
' Если скрипт запущен без параметров, то..
' Если запись в реестре есть, то удаляем наш раздел
If WShell.Run("cmd.exe /C REG QUERY ""HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку""", 0, True)=0 Then
WShell.Run "cmd /C REG DELETE ""HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку"" /f", 0
Else
' Иначе добавляем запись в реестр
' Иконка папки
WShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку\Icon", "%SystemRoot%\System32\shell32.dll,3", "REG_SZ"
' Ставим наш пункт в самый верх контекстного меню
WShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку\Position", "Top", "REG_SZ"
' Прописываем действия, которые будут выполняться при клике по нашему пункту меню
WShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Создать папку\command\", "wscript.exe """&WScript.ScriptFullName&""" -folder", "REG_SZ"
End If
End if
Подскажите.
-Создал пустой текстовый документ
-Вставил в него код скрипта
-Сохранил получившееся с расширением vbs
-Создал batник с таким содержимым:
start /wait HideFileExt.vbs
start /wait ShowSuperHidden.vbs
Вопрос в следующем. Что не так делаю? Как запустить скрипт на T13? Спрашиваю т.к. не отрабатывает (вылазит ошибка).
Как запустить скрипт на T13? »скорей всего на t13 ещё нет поддержки скриптов, и батник придётся запускать при первом входе в систему.
g.l.fire
04-09-2009, 08:58
А можно добавить пункт , чтобы выделялись те файлы у которых такая же дата , будет очень удобно выделять фото по дате
Всем привет. :jump:
Мальчики подскажите и помогите пожалуйста, даже не чайнику , а полнейшей кастрюле в этих вопросах. Желательно так, чтобы дошло даже до блондинки... :durak:
Суть вопроса вот в чем. Очень часто, практически все рабочее время работаю в Acrobat-е (не Reader-е). Вешать ярлык на стол не выход, так как там и так "непровернешься"... :crazygirl:
Помогите плс вставить пункт Acrobat-a в меню создать. Чтобы кликнула правой мышкой на столе и в менюшке было создать Acrobat... :yes:
Заранее всем пасибки, а тому кто подскажет самый простой и на 100% рабочий способ еще и цемки 100 тысяч раз!!!!!!!!!!!!!! :girlinlove:
Habetdin
04-09-2009, 14:09
Beepsi, используйте TweakUI, найти можно здесь (http://forum.oszone.net/thread-106515.html) :)
После этого создайте пустой документ Acrobat'а (это будет шаблон) и укажите путь к нему тут:
http://s54.radikal.ru/i146/0909/af/273ff4f071e5t.jpg (http://s54.radikal.ru/i146/0909/af/273ff4f071e5.png)
Habetdin
Огромное пасибки. С горем пополам разобралась. Как и обещала 100000000000000000000000000000000000000000000 раз цемки :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove: :girlinlove:
Подскажите.
-Создал пустой текстовый документ
-Вставил в него код скрипта
-Сохранил получившееся с расширением vbs
-Создал batник с таким содержимым:
start /wait HideFileExt.vbs
start /wait ShowSuperHidden.vbs
-Положил batник рядом с файлами HideFileExt.vbs и ShowSuperHidden.vbs
-Запускаю batник - в результате следующая ошибка:
http://s40.radikal.ru/i088/0909/e0/11c037c928c8.png (http://www.radikal.ru)
Помогите победить эту проблему. Согласен на запуск на "живой" системе :)
Habetdin
04-09-2009, 20:34
Fresh96, запускаете с правами админа?
Fresh96, запускаете с правами админа? »
Новый пользователь с правами администратора на свежеустановленной системе (виртуалка)
Habetdin
04-09-2009, 22:14
Fresh96, а если запустить так?
start /wait ShowSuperHidden.vbs 1
Чтото не хочет (
А в указанные скрипты, случайно, ничего не нужно дописывать самостоятельно?
Habetdin
04-09-2009, 22:31
Fresh96, просто у вас нет ветки HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden
А скрипт проверяет ее и выдает ошибку:
' Проверяем значение в реестре и в зависимости от него либо отображаем скрытые папки, либо наоборот убираем.
If WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden") = 1 then »
Посмотрел в реестре - записи создаются. Но не появляются соответствующие пункты в меню.
Имеет ли значение в какой кодировке файл?
Вышлите, пожалуйста, в ПМ скрипты которые работают у Вас.
Peredreifus
13-09-2009, 15:17
Посмотрел в реестре - записи создаются. Но не появляются соответствующие пункты в меню. »
Если у тебя Windows XP, то пунктов ты и не увидишь, она не поддерживает этой фичи. На Висте и Windows 7 работает.
StasNVKZ
18-09-2009, 19:38
Цитата Fresh96:
Посмотрел в реестре - записи создаются. Но не появляются соответствующие пункты в меню. »
Если у тебя Windows XP, то пунктов ты и не увидишь, она не поддерживает этой фичи. На Висте и Windows 7 работает. »
Поддерживает. Только немного другие ветки реестра нужны.
Dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell")
' Если скрипт запущен с каким-то параметром, то...
If WScript.Arguments.Count>0 Then
' Проверяем значение в реестре и в зависимости от него либо отображаем расширения, либо наоборот скрываем.
If WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt") = 0 then
' Скрываем расширения
WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "1", "REG_DWORD"
' Добавляем пункт в контекстное меню
' В поле command прописываем путь до текущего скрипта с параметром (не важно каким, главное, чтобы он был), чтобы..
' ..скрипт понял, что ему нужно не удалить ветку реестра, а изменить
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt\", "Показать расширения", "REG_SZ"
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt\command\", "WScript.exe """&WScript.ScriptFullName&""" -argument", "REG_SZ"
' Обновляем окно эксплорера, чтобы увидеть результат
WSHShell.SendKeys "{F5}"
Else
' Показываем расширения
WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "0", "REG_DWORD"
' Добавляем пункт в контекстное меню
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt\", "Скрыть расширения", "REG_SZ"
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt\command\", "WScript.exe """&WScript.ScriptFullName&""" -argument", "REG_SZ"
' Обновляем окно эксплорера, чтобы увидеть результат
WSHShell.SendKeys "{F5}"
End If
Else
' Если запись в реестре есть, то удаляем наш раздел
If WSHShell.Run("cmd.exe /C REG QUERY ""HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt""", 0, True)=0 Then
WSHShell.Run "cmd /C REG DELETE ""HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt"" /f", 0
Else
' Иначе запускаем этот скрипт с параметром (какой параметр - значения не имеет, главное его наличие)
WSHShell.Run """"&WScript.ScriptFullName&""" -argument"
' И еще добавим иконочку для красоты
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Classes\Directory\shell\HideFileExt\Icon", "%SystemRoot%\System32\shell32.dll,69", "REG_SZ"
End If
End if
Set WSHShell = Nothing
WScript.Quit(0)
Если у тебя Windows XP »
Она самая.
пунктов ты и не увидишь, она не поддерживает этой фичи. На Висте и Windows 7 работает. »
Жаль. Придется вернутся к старой версии... но сначала попробую вариант от StasNVKZ
Всем привет, подскажите пожалуйста как сделать чтобы в контекстном меню при нажатии на файл правой кнопкой появлялся пункт "Копировать путь" раньше в сборке zvercd такая штучка была а щас нет и без нее очень неудобно.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC