Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Как вызвать консоль из контекстного меню файла, WinXP

Автор: abz
Дата сообщения: 23.12.2004 11:17
Мне нужно создать строку в контекстном меню любого файла, вызываемого по правой кнопке мыши, следующего действия (часть этой задачи уже решил, но остался главный вопрос):



и чтобы при выборе пункта CMD была открыта консоль таким образом:



Я создал reg-файл следующего содержания:

Код: Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\view]
@="& CMD"

[HKEY_CLASSES_ROOT\*\shell\view\command]
@="cmd.exe /k echo \"%1\""
Автор: abz
Дата сообщения: 25.12.2004 03:26
abz
11:17 23-12-2004
Цитата:
Нужно писать название ОС в _названии_ темы (п. 2.3 правил). Исправлено. lynx.

Это работает в любой NT системе, а также, при небольшом изменении и в остальных Win! Поэтому указывать в названии ОС не стал.

Вот решение (спасибо KLASS и carrotik):

Цитата:
...пишем скриптик:

Set WshShell = WScript.CreateObject("WScript.Shell")
Set FS = CreateObject("Scripting.FileSystemObject")
Set File = FS.GetFile(WScript.Arguments(0))
sPath = FS.GetParentFolderName(File)
intReturn = WshShell.Run("cmd /k cd " & sPath)
WScript.Sleep 1000
WshShell.Sendkeys File.Name
'For i = 1 To Len(File.Name)
'WshShell.Sendkeys "{LEFT}"
'Next
'WshShell.Sendkeys " {LEFT}"

...называем его, к примеру c:\cmdkeys.vbs .... а в реестре, соответственно:


код:
--------------------------------------------------------------------------------

[HKEY_CLASSES_ROOT\*\shell\Command\command]
@="wscript c:\cmdkeys.vbs \"%1\""

Подробнее здесь.
Автор: KLASS
Дата сообщения: 25.12.2004 10:46
abz
В итоге получилось следущее, создаешь скрипт бла-бла.vbs

Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FS = CreateObject("Scripting.FileSystemObject")
Set File = FS.GetFile(WScript.Arguments(0))
sPath = FS.GetParentFolderName(File)
intReturn = WshShell.Run("cmd /k cd " & sPath)
WScript.Sleep 250
WshShell.Sendkeys Chr(34) & File.Name & Chr(34)
Автор: popkov
Дата сообщения: 20.04.2005 11:07
KLASS

Цитата:
intReturn = WshShell.Run("cmd /k cd " & sPath)

Лучше, кстати, эту строку видоизменить так:

Цитата:
intReturn = WshShell.Run("%windir%\system32\cmd.exe /k cd " & sPath)

Иначе с исполнимыми (и скриптовыми) файлами с именами CMD работать всё это не будет.

Но, к сожалению, с файлами, содержащими русские буквы, вся эта премудрость работать не хочет ни в какиую: русские буквы просто удаляются, и не отправляются уже открытому окну командной строки...
Автор: KLASS
Дата сообщения: 20.04.2005 15:19

Цитата:
с файлами, содержащими русские буквы, вся эта премудрость работать не хочет ни в какиую

Думаю и это возможно. Надо только знать, как в скрипт засунуть подставку имени файла в Unicode, тогда и русские будет хавать. Обратись к спецам по скриптам или поройся у мелких в Скриптовом центре http://www.microsoft.com/technet/scriptcenter/default.mspx

Страницы: 1

Предыдущая тема: Затерся загрузчик Windows


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.