View previous topic :: View next topic |
Author |
Message |
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Thu Feb 05, 2015 21:47 Post subject: ТС или Проводник является местом запуска скрипта? |
|
|
Скрипт (VBS) запускается из контекстного меню в Проводнике или ТС. Как из скрипта определить место вызова контекстного меню из которого и был запущен этот скрипт? _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Feb 05, 2015 22:55 Post subject: |
|
|
Контекстные меню как отдельные приложения или как часть интерфейса? Нужна конкретика с примером (способ вызова меню, название пункта, запись в shell и т.д.). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Fri Feb 06, 2015 09:27 Post subject: |
|
|
Flasher wrote: | Нужна конкретика с примером (способ вызова меню, название пункта, запись в shell и т.д.). |
1 Запись в контекстном меню создается reg файлом: Code: | Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\Test]
@="Тест папки"
"Icon"="\"C:\\Program Files (x86)\\Test\\Test.ico\",0"
[HKEY_CLASSES_ROOT\Directory\shell\Test\command]
@="wscript \"C:\\Program Files (x86)\\Test\\Test.vbs\" \"%1\" /TEST" |
В контекстном меню любой папки появится пункт "Тест папки" служащий для запуска скрипта.
2 В папке программы C:\Program Files (x86)\Test лежит скрипт и произвольная иконка: Code: | If WScript.Arguments.Count < 2 Then WScript.Quit
F = WScript.Arguments.UnNamed.Item(0)
'~~~~~~~
If WScript.Arguments.Named.Exists("TEST") Then
shell = "???"
MsgBox "Папка: " & F & vbCr & "Запущено из: " & shell, 48, "Тест"
End If
'~~~~~~~
If WScript.Arguments.Named.Exists("TEST2") Then
' что бы не было вопросов, "зачем два параметра?"
End If
'~~~~~~~
If WScript.Arguments.Named.Exists("TEST3") Then
' что бы не было вопросов, "зачем два параметра?"
End If |
3 Нужно, что-бы после запуска в окне скрипта был ответ на вопрос вынесенный в заголовок темы. _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 06, 2015 10:25 Post subject: |
|
|
В общем, не суть. Тут главное то, что само меню встроенное. Поэтому хоть по Enter, хоть по Открыть в комстроке, хоть по Тест на папке - без разницы.
Code: | QL ="winmgmts:\\.\root\cimv2:win32_process.Handle="
With CreateObject("WScript.Shell")
With GetObject(QL & .Exec("rundll32 kernel32,Sleep").ProcessId)
Path = GetObject(QL & GetObject(QL & .ParentProcessId)._
ParentProcessId).ExecutablePath : .Terminate()
End With
With .Environment("Process")
If Path = .Item("COMMANDER_EXE") Then
MsgBox "Это TC!"
ElseIf StrComp(Path, .Item("SystemRoot") & "\explorer.exe", 1) = 0 Then
MsgBox "Это проводник!"
Else MsgBox "Это что-то другое!"
End if
End With : .Run "wmic.exe exit", 0
End With |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Fri Feb 06, 2015 12:47; edited 3 times in total |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Fri Feb 06, 2015 11:26 Post subject: |
|
|
Flasher
Спасибо, это работает. А "тормоза" нельзя убрать или как-нибудь уменьшить? _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 06, 2015 11:34 Post subject: |
|
|
gora, исправил. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Fri Feb 06, 2015 12:45 Post subject: |
|
|
Flasher
На ХР не работает, выдает:
Code: | Сценарий: C:\Program Files\Test\Test.vbs
Строка: 54
Символ: 2
Ошибка: Недопустимый дескриптор окна.
Код: 80070578
Источник: (null) |
Строка 54:
_________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 06, 2015 12:47 Post subject: |
|
|
Дык сейчас другой уже вариант. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
|