Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

ТС или Проводник является местом запуска скрипта?

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Thu Feb 05, 2015 21:47    Post subject: ТС или Проводник является местом запуска скрипта? Reply with quote

Скрипт (VBS) запускается из контекстного меню в Проводнике или ТС. Как из скрипта определить место вызова контекстного меню из которого и был запущен этот скрипт?
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Feb 05, 2015 22:55    Post subject: Reply with quote

Контекстные меню как отдельные приложения или как часть интерфейса? Нужна конкретика с примером (способ вызова меню, название пункта, запись в shell и т.д.).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Fri Feb 06, 2015 09:27    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Feb 06, 2015 10:25    Post subject: Reply with quote

В общем, не суть. Тут главное то, что само меню встроенное. Поэтому хоть по 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
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Fri Feb 06, 2015 11:26    Post subject: Reply with quote

Flasher
Спасибо, это работает. А "тормоза" нельзя убрать или как-нибудь уменьшить?
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Feb 06, 2015 11:34    Post subject: Reply with quote

gora, исправил.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Fri Feb 06, 2015 12:45    Post subject: Reply with quote

Flasher
На ХР не работает, выдает:
Code:
Сценарий:   C:\Program Files\Test\Test.vbs
Строка:   54
Символ:   2
Ошибка:   Недопустимый дескриптор окна.
Код:   80070578
Источник:    (null)

Строка 54:
Code:
   Exec.Terminate

_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Feb 06, 2015 12:47    Post subject: Reply with quote

Дык сейчас другой уже вариант.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group