0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 4
VBS

Как сделать окно активным и вывести его на передний план

21.11.2015, 14:57. Показов 8038. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В скрпте создается окно Internet explorer (методом CreateObject("InternetExplorer.Applicati on")). Далее неоходимо сделать это окно активным и вывести на передний план.Функция AppActivate не отрабатывает как надо (в Windows 8 и скорее всего в Windows 7). Каким способом можно сделать окно Explorera активным. Приложил пример (текст с другого скипта, но увидеть проблему можно).

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Option Explicit
 
Const READYSTATE_COMPLETE = 4
 
Dim objIE
Dim objWindow
 
Dim boolDone, res
Dim strPassword
 
 
 
 
Dim fso, f1, ts,wshell,wshell2
Const ForWriting = 2
 
Set objIE = CreateObject("InternetExplorer.Application")
set wshell= createObject("WScript.Shell")
set wshell2= createObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("C:\Windows\Temp\test1.vbs")
Set f1 = fso.GetFile("C:\Windows\Temp\test1.vbs")
Set ts = f1.OpenAsTextStream(ForWriting, True)
ts.Write ("wscript.sleep 1000") 
ts.Close
With objIE
    .Navigate "about:blank"
    Do
        wshell.run "C:\Windows\Temp\test1.vbs",1,true
    Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
    
 
    
    .AddressBar = False
    .MenuBar    = False
    .StatusBar  = False
    .ToolBar    = False
    
    With .Document
        .write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Strict//EN"">" & vbCrLf & _
                "<html>" & vbCrLf & _
                "   <head>" & vbCrLf & _
                "       <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>" & vbCrLf & _
                "       <meta http-equiv='Content-Language' content='ru'>" & vbCrLf & _
                "       <title>Input password</title>" & vbCrLf & _
                "       <style>" & vbCrLf & _
                "           body {" & vbCrLf & _
                "               margin: 1em 1em 1em 1em;" & vbCrLf & _
                "               color: MidnightBlue;" & vbCrLf & _
                "               background-color: LightSteelBlue" & vbCrLf & _
                "           }" & vbCrLf & _
                "       </style>" & vbCrLf & _
                "   </head>" & vbCrLf & _
                "   <body>" & vbCrLf & _
                "       <label for='sPassword' accesskey='P'>Enter <u>p</u>assword:</label>" & vbCrLf & _
                "       <input type='password' name='sPassword' id='sPassword' size='50'>" & vbCrLf & _
                "       <input type='button' value='OK' name='OK'>" & vbCrLf & _
                "       <input type='button' value='╬Єьхэр' name='Cancel'>" & vbCrLf & _
                "       <input type='radio' value='radio' name='Radio'>" & vbCrLf & _
                "   </body>" & vbCrLf & _
                "</html>"
        
        .getElementsByName("OK").item(0).onclick     = GetRef("IEButtonClick")
        .getElementsByName("Cancel").item(0).onclick = GetRef("IEButtonClick")
        
        With .getElementByID("sPassword")
            .onKeyPress                             = GetRef("IEOnKeyPress")
            .focus
        End With
        
        Set objWindow = .parentWindow
        
        With .Body
            objWindow.resizeTo .scrollWidth + 25, .scrollHeight + 32
            objWindow.moveTo (objWindow.screen.availWidth - .offsetWidth) \ 2, (objWindow.screen.availHeight - .offsetHeight) \ 2
        End With
        
        Set objWindow = Nothing
        
        .getElementByID("sPassword").focus
    End With
    
    .Visible = True
    
    boolDone = False
    strPassword = Empty
    wshell2.AppActivate("Input password")
        wshell.run "C:\Windows\Temp\test1.vbs",1,true
        wshell.run "C:\Windows\Temp\test1.vbs",1,true
    Do
        wshell.run "C:\Windows\Temp\test1.vbs",1,true
    Loop Until boolDone
    
    On Error Resume Next
    .Quit
    On Error Goto 0
End With
 
Set objIE = Nothing
 
If Not IsEmpty(strPassword) Then
    msgbox"Password is [" & strPassword & "]"
Else
    msgbox "Password is not entered"
End If
 
 
'=============================================================================
 
'=============================================================================
Sub IE_OnQuit
    boolDone = True
End Sub
'=============================================================================
 
'=============================================================================
Sub IEButtonClick
    Select Case Me.Name
        Case "OK"
            strPassword = objIE.Document.getElementByID("sPassword").Value
            boolDone = True
        Case "Cancel"
            boolDone = True
        Case Else
            ' Nothing to do
    End Select
End Sub
'=============================================================================
 
'=============================================================================
Sub IEOnKeyPress
    Select Case Me.ownerDocument.parentWindow.event.keyCode
        Case 13
            strPassword = Me.Value
            boolDone = True
        Case 27
            boolDone = True
        Case Else
            ' Nothing to do
    End Select
End Sub
'=============================================================================
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2015, 14:57
Ответы с готовыми решениями:

Как вывести главное окно приложения на передний план
Всем здравствуйте. На форму помещён таймер. Если приложение свёрнуто на панель задач, то по истечению интервала таймера происходит...

Вывести окно на передний план
2. У меня сначала, запускается программа (Client.exe) потом идет команда msg. Но из за того, что Client.exe запускается естественно...

Вывести окно на передний план
findwindow('Приложение с едит1',nil); что-то типо в общем нужно чтобы вывело окно с едита 1, тоесть чтобы просто приложение вылезло...

3
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
21.11.2015, 15:07
VitaFive, заглядывали на MSDN?
0
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 4
21.11.2015, 15:14  [ТС]
Да. Не нашел ничего подходящего. Может чего не заметил :-(
0
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 4
23.11.2015, 14:36  [ТС]
Сработал вариант
Visual Basic
1
2
3
4
5
6
Set locator = CreateObject("WbemScripting.SWbemLocator")
Set service = locator.ConnectServer()
Set props = service.ExecQuery("select * from Win32_Process where name = 'iexplore.exe'")
For Each objProcess in props
    wshell.AppActivate objProcess.ProcessId
Next
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2015, 14:36
Помогаю со студенческими работами здесь

Как перенести на передний план окно с приложением?
Добрый день! В WinXP одна программа запускает другую, и окно последней, с GUI, появляется не всегда. Если запустить после этого Process...

Как выдвинуть окно экселя на передний план?
?

Как сделать окно активным если известно его Hwnd?
Как сделать окно активным если известно его Hwnd?

Нужно закрыть модальное окно и сделать активным вызвавшее его окно
Мне нада средствами Win API закрыть модальное окно и сделать активным вызвавшее его окно. Кто знает как это сделать?

Как вывести картинку на передний план
Здравствуйте, помогите пожалуйста разобраться, как вывести картинку из класса &quot;hdtv&quot; на передний план поверх картинки постера: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru