View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri May 06, 2011 20:40 Post subject: |
|
|
HEXFIX wrote: | В коде скрипта по ссылке: "Requirements: Script Helper ActiveX for TC by Volniy" | А, ну да. Забыл. Там без этого трудновато. Хотя скрипт сам по себе даёт более универсальный вариант перезапуска. Сделать без Хелпера скрипт, аналогичный примеру в DemoScripts - не проблема. Надо? |
|
Back to top |
|
|
HEXFIX
Joined: 25 Jun 2010 Posts: 173 Location: Калининград
|
(Separately) Posted: Fri May 06, 2011 23:50 Post subject: |
|
|
Flasher
Если он будет работать при запуске тотала с флэшки, то да, надо!
Добавлено спустя 2 минуты 50 секунд:
Ну и чтоб на 64-бит работал при этом. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat May 07, 2011 02:35 Post subject: |
|
|
Что-то наподобие этого:
Code: | With CreateObject("WScript.Shell")
TCExe = .ExpandEnvironmentStrings("%Commander_Path%\totalcmd.exe")
.SendKeys "%{F4}"
WScript.Sleep 50
.Exec(TCExe)
End With |
|
|
Back to top |
|
|
Serge Yolkin
Joined: 25 Jul 2009 Posts: 664
|
(Separately) Posted: Sat May 07, 2011 21:31 Post subject: |
|
|
Вопрос к знатокам (JScript): а можно ли убить зависшую функцию? Не цикл. Ну, например: Code: | function MyBedniyFunction(){
objNeZnayuGde.GetNeZnayuChto();
} | вызывается с кнопки (hta), в 99 случаях работает прекрасно, а в сотом - виснет насмерть. Сообщений об ошибке нет, поэтому try не помогает. Только процесс убивать (mshta) вместе с окошком. Вот бы еще такую функцию, чтобы прерывала предыдущую... С кнопки там, или по таймауту... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat May 28, 2011 02:41 Post subject: |
|
|
Serge Yolkin
Какой-то аналог WScript.Timeout должен быть.
All
Никто не знает, почему имитация Esc (SendKeys/SendKeyStroke) при задействовании в файловой панели TC впадает в тяжёлый ступор (цикл)? |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Sun Jul 24, 2011 19:51 Post subject: |
|
|
Подскажите пожалуйста как в скрипте vbs использовать функции другого скрипта, где прописаны только функции
В AkelPad есть функция AkelPad.Include("Functions.vbs")
В au3 есть #include <Excel.au3>
А как в vbs? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Jul 25, 2011 09:51 Post subject: |
|
|
Andrey_A wrote: | как в скрипте vbs использовать функции другого скрипта, где прописаны только функции |
Code: | Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Execute FSO.OpenTextFile("C:\Путь\IncludeFile.vbs").ReadAll
...
|
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Mon Jul 25, 2011 10:30 Post subject: |
|
|
Спасибо, а я через eval(FSO.Open...) пытался |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Sep 13, 2011 16:12 Post subject: |
|
|
Подскажите, пожалуйста такую вещь
Есть текст, как можно создать коллекцию, объктом CreateObject("Scripting.Dictionary") , состоящую из отдельных строк
я пытался следующим образом
1. сначала делал массив
2. затем каждое значение присаивал
Code: |
ArBasic = Split(Text, vbNewLine)
Set oDict = CreateObject("Scripting.Dictionary")
oDict.RemoveAll
For Each Item In ArBasic
If Len(Item) > 0 Then
If Not bDict.Exists(Item) Then bDict.Add Item, Item
End If
Next |
есть ли что-нибудь покороче. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Sep 13, 2011 17:41 Post subject: |
|
|
Знать бы ещё, что такое Text.
Code: | Set FSO = CreateObject("Scripting.FileSystemObject")
Text = FSO.OpenTextFile(WScript.Arguments(0), 1).ReadAll
Set oDict = CreateObject("Scripting.Dictionary")
For Each i in Split(Text, vbNewLine)
If i > vbNullString Then D.Add i, ""
Next |
Andrey_A wrote: | есть ли что-нибудь покороче. | В каком смысле "покороче"? Число строк можно сократить, если писать массив в цикл без создания переменной. Куда тут короче? |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Wed Sep 14, 2011 22:44 Post subject: |
|
|
Flasher
Спасибо, там наверно не
If i > vbNullString Then D.Add i, ""
а
If i > vbNullString Then oDict.Add i, "" |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Sep 14, 2011 23:44 Post subject: |
|
|
Да, я со своего скрипта скопипастил, не обратил внимания. |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Thu Sep 15, 2011 20:47 Post subject: |
|
|
У меня есть скрипт для убивания процессов всех программ, лежащих в указанной папке (нужно при (де)инсталляции пака):
Code: | strComputer = "."
strNamespace = "Root\CIMV2"
Set objService = GetObject("WinMgmts:\\" & strComputer & "\" & strNamespace)
Set WshShell = WScript.CreateObject("WScript.Shell")
Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE ExecutablePath Like '" & Replace(WScript.Arguments(0),"\","\\") & "%'")
For Each objProcess in colProcesses
objProcess.Terminate()
Next |
В первом аргументе передаётся путь.
Вполне работает... Но убивает процессы только текущего пользователя. Если кто-то ещё вошёл в систему и запустил какую-нибудь прогу — тот процесс не убъётся...
Как решить задачу? |
|
Back to top |
|
|
Serge Yolkin
Joined: 25 Jul 2009 Posts: 664
|
(Separately) Posted: Thu Sep 15, 2011 22:43 Post subject: |
|
|
ApceH wrote: | Как решить задачу? |
Запускать скрипт от админа (в Vista/7 - еще и с повышением прав) |
|
Back to top |
|
|
ApceH
Joined: 08 Apr 2011 Posts: 316 Location: Димитровград
|
(Separately) Posted: Thu Sep 15, 2011 22:57 Post subject: |
|
|
Serge Yolkin
Нет.
Сейчас смотрю, выдаются-то все процессы.
Но Terminate не срабатывает. Причем НЕ из-за прав, а, как я подозреваю, из-за того, что сеанс пользователя приостановлен...
Last edited by ApceH on Thu Sep 15, 2011 23:07; edited 1 time in total |
|
Back to top |
|
|
|