script

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
katy_1
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 05.06.2005 (Вс) 9:10

script

Сообщение katy_1 » 05.06.2005 (Вс) 9:14

Помогите прочитать следующий скрипт:
WshShell.AppActivate theSun.ProcessID
WshShell.SendKeys "2211"
WScript.Sleep 100
Заранее благодарна за помощь.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 05.06.2005 (Вс) 9:19

katy_1
Читаю (все читается медленно и с выражением):

WshShell.AppActivate theSun.ProcessID
WshShell.SendKeys "2211"
WScript.Sleep 100
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Re: script

Сообщение Ruslan Demidow » 05.06.2005 (Вс) 10:35

katy_1 писал(а):Помогите прочитать следующий скрипт:
WshShell.AppActivate theSun.ProcessID
WshShell.SendKeys "2211"
WScript.Sleep 100
Заранее благодарна за помощь.


Всё просто: в новой версии Windows Script Host 2.0 (начиная с XP) есть возможность запустить приложение из скрипта и присвоить его ProcessID какой либо переменной. После этого можно обращаться к данному процессу через этот идентификатор. В твоём примере при запуске приложения из скрипта переменной theSun был присвоен ProcessID этого приложения. И строка WshShell.AppActivate theSun.ProcessID активирует это приложение (выводит на передний план и передаёт фокус ему).
Строка WshShell.SendKeys "2211" - посылает нажатия клавиш в активное окно (окно приложения с идентификатором theSun.ProcessID.
После этого происходит пауза в 100 милисекунд, чтобы до выполнения следующей строки скрипта данные в окне приложения с идентификатором theSun.ProcessID успели прорисоваться.

Прикладываю пример запуска блокнота таким образом.
В нём наглядно показано использование ProcessID

Код: Выделить всё

'*******************************************************************
' Имя: ExecWinApp.vbs                                             
' Язык: VBScript                                                   
' Описание: Запуск и закрытие приложение (объект WshScriptExec)   
'*******************************************************************
Option Explicit

Dim WshShell,theNotepad,Res,Text,Title   ' Объявляем переменные
' Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "Запускаем Блокнот"
' Запускаем приложение (создаем объект WshScriptExec)
Set theNotepad = WshShell.Exec("notepad")
WScript.Sleep 500   ' Приостанавливаем выполнение сценария
Text="Блокнот запущен (Status=" & theNotepad.Status & ")" & vbCrLf _
      & "Закрыть Блокнот?"
Title=""
' Выводим диалоговое окно на экран
Res=WshShell.Popup(Text,0,Title,vbQuestion+vbYesNo)
' Определяем, какая кнопка нажата в диалоговом окне
If Res=vbYes Then
  theNotepad.Terminate ' Прерываем работу Блокнота
  ' Приостанавливаем выполнение сценария для того, чтобы Блокнот
  ' успел закрыться
  WScript.Sleep 100
  WScript.Echo "Блокнот закрыт (Status=" & theNotepad.Status & ")"
End If
'*************  Конец *********************************************/


Остальное легко можно найти в справке по VB-script.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 197

    TopList