Андрей Панарин
Искусственный Интеллект
(249271)
2 месяца назад
Очень похоже на Visual Basic и VBA.
Вторая программа, похоже, ищет в системе все известные ей клиенты для торрентов и запускает один из них. Причем проверяет наличие любого из них, а запускает только первый, независимо от его наличия. Фейспалм.
Насчет первой затрудняюсь ответить.
Юлия Скрипниченко
Мастер
(1992)
2 месяца назад
### 1. Код: Автоматическое закрытие окна приложения
```vbscript
Set wshShell = CreateObject("WScript.Shell")
startTime = Now
doWhileTimeout = 7 / 86400
Do While Now - startTime < doWhileTimeout
If wshShell.AppActivate("mode extensions") or wshShell.AppActivate("разработчика") or wshShell.AppActivate("розробника") Then
wshShell.SendKeys "{ESC}"
End If
WScript.Sleep 10
Loop
If Now - startTime >= doWhileTimeout Then
WScript.Quit
End If
**Функциональность:**
- Этот скрипт создает объект `WScript.Shell`, который позволяет взаимодействовать с оболочкой Windows.
- Скрипт записывает текущее время в переменную `startTime` и устанавливает тайм-аут в `7` секунд.
- В цикле `Do While`, который выполняется, пока текущее время минус `startTime` меньше тайм-аута, скрипт проверяет, активен ли одно из заданных окон (по заголовку).
- Если одно из окон активно, отправляется клавиша `ESC`.
- Скрипт спит 10 миллисекунд между проверками.
- По завершении времени тайм-аута, скрипт завершает работу.
**Использование:** Этот скрипт может быть использован для автоматического закрытия окна приложения, если оно активно, отправляя клавишу `ESC`.
### 2. Код: Запуск приложения, если оно не запущено
```vbscript
Set wshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
userName = wshShell.ExpandEnvironmentStrings("%USERPROFILE%")
filePath = userName & "\AppData\Local\Programs\com.gametop.launcher\gt-launcher.exe"
processName = "gt-launcher.exe"
filePath0 = "C:\Program Files\TorrentPro\TorrentPro.exe"
processName0 = "TorrentPro.exe"
filePath1 = "C:\Program Files\uFilerPro\uFilerPro.exe"
processName1 = "uFilerPro.exe"
filePath2 = "C:\Program Files\BitTorrentPro\BitTorrentPro.exe"
processName2 = "BitTorrentPro.exe"
filePath3 = "C:\Program Files\MediaGetPro\MediaGetPro.exe"
processName3 = "MediaGetPro.exe"
filePath4 = "C:\Program Files\qBittorrentPro\qBittorrentPro.exe"
processName4 = "qBittorrentPro.exe"
filePath5 = "C:\Program Files\uTorrentPro\uTorrentPro.exe"
processName5 = "uTorrentPro.exe"
filePath6 = userName & "\AppData\Local\Programs\com.brotorrent.torrent-client-utorrent\uTorrent-v2.exe"
processName6 = "uTorrent-v2.exe"
' Функция для проверки, запущен ли процесс
Function IsProcessRunning(procName)
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & procName & "'")
If colProcesses.Count > 0 Then
IsProcessRunning = True
Else
IsProcessRunning = False
End If
End Function
1
Set wshShell = CreateObject("WScript.Shell")
startTime = Now
doWhileTimeout = 7 / 86400
Do While Now - startTime < doWhileTimeout
If wshShell.AppActivate("mode extensions") or wshShell.AppActivate("разработчика") or wshShell.AppActivate("розробника") Then
wshShell.SendKeys "{ESC}"
End If
WScript.Sleep 10
Loop
If Now - startTime >= doWhileTimeout Then
WScript.Quit
End If
2
Set wshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
userName = wshShell.ExpandEnvironmentStrings("%USERPROFILE%")
filePath = userName & "\AppData\Local\Programs\com.gametop.launcher\gt-launcher.exe"
processName = "gt-launcher.exe"
filePath0 = "C:\Program Files\TorrentPro\TorrentPro.exe"
processName0 = "TorrentPro.exe"
filePath1 = "C:\Program Files\uFilerPro\uFilerPro.exe"
processName1 = "uFilerPro.exe"
filePath2 = "C:\Program Files\BitTorrentPro\BitTorrentPro.exe"
processName2 = "BitTorrentPro.exe"
filePath3 = "C:\Program Files\MediaGetPro\MediaGetPro.exe"
processName3 = "MediaGetPro.exe"
filePath4 = "C:\Program Files\qBittorrentPro\qBittorrentPro.exe"
processName4 = "qBittorrentPro.exe"
filePath5 = "C:\Program Files\uTorrentPro\uTorrentPro.exe"
processName5 = "uTorrentPro.exe"
filePath6 = userName & "\AppData\Local\Programs\com.brotorrent.torrent-client-utorrent\uTorrent-v2.exe"
processName6 = "uTorrent-v2.exe"
' Функция для проверки, запущен ли процесс
Function IsProcessRunning(procName)
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & procName & "'")
If colProcesses.Count > 0 Then
IsProcessRunning = True
Else
IsProcessRunning = False
End If
End Function
' Проверка, существует ли файл
If fso.FileExists(filePath) Or fso.FileExists(filePath0) Or fso.FileExists(filePath1) Or fso.FileExists(filePath2) Or fso.FileExists(filePath3) Or fso.FileExists(filePath4) Or fso.FileExists(filePath5) Or fso.FileExists(filePath6) Then
' Проверка, открыт ли файл
If Not IsProcessRunning(processName) AND Not IsProcessRunning(processName0) AND Not IsProcessRunning(processName1) AND Not IsProcessRunning(processName2) AND Not IsProcessRunning(processName3) AND Not IsProcessRunning(processName4) AND Not IsProcessRunning(processName5) AND Not IsProcessRunning(processName6) Then
' Запуск файла, если процесс не найден
wshShell.Run Chr(34) & filePath & Chr(34)
End If
End If
3
тык