Добавлено: Чт сен 15, 2011 23:04
- это лишнее.ApceH писал(а):Код: Выделить всё
Set WshShell = WScript.CreateObject("WScript.Shell")
А в другом сеансе программы точно из этой папки запускаются?
Форум поддержки пользователей Total Commander
https://forum.wincmd.ru/
- это лишнее.ApceH писал(а):Код: Выделить всё
Set WshShell = WScript.CreateObject("WScript.Shell")
Код: Выделить всё
Dim WSH, TCS
Set WSH = CreateObject("WScript.Shell")
Set TCS = WScript.CreateObject("TCScript.Helper")
WSH.Run """" & WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%\Utils\TCMultipleCommands\TCMC.exe") & """ 50 CM2400" & """ """"", 1, True
Wscript.Sleep 1000
' варианты:
'WSH.SendKeys "qwe"
TCS.SendKeystroke "qwe"
Код: Выделить всё
Set objService = GetObject("WinMgmts:\\.\Root\CIMV2")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE ExecutablePath Like '" & Replace(WScript.Arguments(0),"\","\\") & "%'")
PIDs = ""
For Each objProcess in colProcesses
PIDs = PIDs & " /PID " & objProcess.ProcessId
Next
WshShell.Run "TASKKILL /F" & PIDS, 0, FalseКод: Выделить всё
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
For Each p in WMI.ExecQuery("SELECT * FROM Win32_Process WHERE ExecutablePath Like '" & Replace(WScript.Arguments(0),"\","\\") & "%'")
CreateObject("WScript.Shell").Run "tskill " & p.ProcessID & " /A", 0
NextКод: Выделить всё
With CreateObject("WScript.Shell")
.Exec("%COMMANDER_PATH%\Utils\TCMultipleCommands\TCMC.exe CM2400")
' .Run """" & .ExpandEnvironmentStrings("%COMMANDER_PATH%\Utils\TCMultipleCommands\TCMC.exe") & """ CM2400", 1
Wscript.Sleep 40
.SendKeys "qwe"
End WithА поставить?ApceH писал(а):В Win6+ нет tskill, во-первых.
Т.е. как нельзя? А в чём проблема? (я просто не хочу создавать акк для тестов.)ApceH писал(а):Уже без разницы, чем убивать, если нельзя получить список процессов
Короче, сделал просто вот так пока:ApceH писал(а):В XP совсем другая проблема, которая меня ввела в ступор совсем.
Там свойства ExecutablePath (и даже CommandLine) равны пустой строке, если речь идёт о процессе в другом сеансе... Поэтому хоть tskill, хоть taskkill применить не удастся!
Код: Выделить всё
Set objService = GetObject("WinMgmts:")
Set WshShell = WScript.CreateObject("WScript.Shell")
XP = (Left(WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion"),1) = "5")
If XP Then
Set colSessions = objService.ExecQuery("Select * from Win32_LogonSession Where LogonType = 2")
If colSessions.Count > 1 Then
WScript.Quit 1
End If
End If
Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE ExecutablePath Like '" & Replace(WScript.Arguments(0),"","\") & "%'")
If XP Then
For Each objProcess in colProcesses
WshShell.Run "TSKILL /A " & objProcess.ProcessId, 0, False
Next
Else
For Each objProcess in colProcesses
WshShell.Run "TASKKILL /F /PID " & objProcess.ProcessId, 0, False
Next
End If
WScript.Quit 0
Код: Выделить всё
CreateObject("WScript.Shell").Run "http://translate.google.com/#auto|ru|\привет"Код: Выделить всё
CreateObject("WScript.Shell").Run "http://translate.google.com/#ru|en|привет"Код: Выделить всё
Сценарий: C:\TC Image\AkelFiles\Plugs\Scripts\Test_001.vbs
Строка: 1
Символ: 1
Ошибка: Не удается найти указанный файл.
Код: 80070002
Источник: (null)