LEX1
Цитата:
Я такой же метод привёл чуть раньше .. мне просто интересно, можно ли сделать (через JavaScript?) чтобы выделенные ссылки так проверялись? как передать запросом символы перевода строки (и, наверное возврата каретки)?
Цитата:
Можно через VBS...
[more=Close Opera.vbs...]
Код: Set WSHObj = WScript.CreateObject("WScript.Shell")
'Указываем заголовки диалогов уведомления
ExitOperaTitle = "Выйти из Opera?"
ActiveDownloadsTitle = "Активные закачки"
'Получаем полный путь к Opera.exe
OpPath = Replace(WScript.ScriptFullName, "\" & WScript.ScriptName, "") & "\Opera.exe"
'Получаем уникальный идентификатор процесса Opera.exe (который относится именно к указанному пути)
OpProcPID = PathIsProcess(OpPath)
'Если процесс не запущен, завершаем работу скрипта
If OpProcPID = 0 Then WScript.Quit
'Закрываем процесс Opera (не принудительно)
WSHObj.Run "taskkill.exe /PID " & OpProcPID, 0, True
'Ждём 2 секунды для проверки, не закрылся ли наш процесс
StartTime = Timer
Do While OpProcPID > 0
WScript.Sleep 100
OpProcPID = PathIsProcess(OpPath)
If Timer - StartTime >= 2 Then Exit Do
Loop
'Если процесс всё ещё существует, то активируем диалог(и) уведомления, и посылаем нажатие ENTER (~)
If OpProcPID > 0 Then
WSHObj.AppActivate(ExitOperaTitle)
WSHObj.AppActivate(ActiveDownloadsTitle)
WSHObj.SendKeys("~")
End If
'Функция для получения уникального идентификатора процесса для определённого запущенного файла (испол. WMI).
Function PathIsProcess(Path)
Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
For Each Proc In myProcEnum
If StrComp(Proc.ExecutablePath, Path, 1) = 0 Then
PathIsProcess = Proc.ProcessID
Exit Function
End If
Next
PathIsProcess = 0
End Function
Цитата:
Так?
Я такой же метод привёл чуть раньше .. мне просто интересно, можно ли сделать (через JavaScript?) чтобы выделенные ссылки так проверялись? как передать запросом символы перевода строки (и, наверное возврата каретки)?
Цитата:
А есть альтернативы?
Можно через VBS...
[more=Close Opera.vbs...]
Код: Set WSHObj = WScript.CreateObject("WScript.Shell")
'Указываем заголовки диалогов уведомления
ExitOperaTitle = "Выйти из Opera?"
ActiveDownloadsTitle = "Активные закачки"
'Получаем полный путь к Opera.exe
OpPath = Replace(WScript.ScriptFullName, "\" & WScript.ScriptName, "") & "\Opera.exe"
'Получаем уникальный идентификатор процесса Opera.exe (который относится именно к указанному пути)
OpProcPID = PathIsProcess(OpPath)
'Если процесс не запущен, завершаем работу скрипта
If OpProcPID = 0 Then WScript.Quit
'Закрываем процесс Opera (не принудительно)
WSHObj.Run "taskkill.exe /PID " & OpProcPID, 0, True
'Ждём 2 секунды для проверки, не закрылся ли наш процесс
StartTime = Timer
Do While OpProcPID > 0
WScript.Sleep 100
OpProcPID = PathIsProcess(OpPath)
If Timer - StartTime >= 2 Then Exit Do
Loop
'Если процесс всё ещё существует, то активируем диалог(и) уведомления, и посылаем нажатие ENTER (~)
If OpProcPID > 0 Then
WSHObj.AppActivate(ExitOperaTitle)
WSHObj.AppActivate(ActiveDownloadsTitle)
WSHObj.SendKeys("~")
End If
'Функция для получения уникального идентификатора процесса для определённого запущенного файла (испол. WMI).
Function PathIsProcess(Path)
Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
For Each Proc In myProcEnum
If StrComp(Proc.ExecutablePath, Path, 1) = 0 Then
PathIsProcess = Proc.ProcessID
Exit Function
End If
Next
PathIsProcess = 0
End Function