Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
1

Автоматический ввод цифр в окне inputbox

30.01.2015, 09:47. Просмотров 1197. Ответов 7
Метки нет (Все метки)

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
Set s = CreateObject("WScript.Shell")
c = nVar1 + 200
do
p = InputBox ("бла бла бла","Администратор")
s.sendkeys "8"
wscript.sleep c
s.sendkeys "9"
wscript.sleep c
s.sendkeys "0"
wscript.sleep c
s.sendkeys "8"
wscript.sleep c
s.sendkeys "9"
wscript.sleep c
s.sendkeys "1"
wscript.sleep c
s.sendkeys "0"
wscript.sleep c
s.sendkeys "0"
wscript.sleep c
s.sendkeys "7"
wscript.sleep c
s.sendkeys "3"
wscript.sleep c
s.sendkeys "6"
wscript.sleep c
s.sendkeys "1"
wscript.sleep c
s.sendkeys "9"
wscript.sleep c
s.sendkeys "9"
wscript.sleep c
s.sendkeys "5"
wscript.sleep c
s.sendkeys "0"
wscript.sleep c
s.sendkeys "3"
wscript.sleep c
s.sendkeys "2"
wscript.sleep c
s.sendkeys "8"
wscript.sleep c
loop until p = "8908910073619950328"
MsgBox "Получилось"
Этот скрипт открывает окно InputBox и только после нажатия на закрыть или отмена и т.д., "нажимает" на эти цифры, можно ли сделать так чтобы при открытии InputBox они начинали нажиматься именно в нём?
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2015, 09:47
Ответы с готовыми решениями:

Ввод в InputBox только цифр
Народ, такая проблема, написал программу для решения диффуравнения, все...

Ввод только цифр и запятой в InputBox
Прошу помощи в реализации данной задачи. Нужно сделать, чтобы в InputBox...

Как осуществить ввод букв и цифр вручную в окне написанной программы
Здраствуйте уважаемые коллеги) Редактировала программу под себя, вернее скрипт...

Inputbox ввод секунд
Здравствуйте, уважаемые форумчане! Подскажите ка с помощью функции InputBox...

Запрет на ввод в InputBox
Всем привет! Помогите, пожалуйста) Мой вопрос: как программно запретить ввод...

7
Dmitrii
2603 / 535 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
31.01.2015, 08:44 2
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
... можно ли сделать так чтобы при открытии InputBox они начинали нажиматься именно в нём?
Нет. Окно функции InputBox() открывается в модальном режиме, т.е. до момента его закрывания работа сценария приостанавливается.
1
xuor
5 / 5 / 3
Регистрация: 16.04.2014
Сообщений: 33
01.02.2015, 12:41 3
как то так
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
Set fso = createobject ("scripting.filesystemobject")
Set oShell = CreateObject("WScript.Shell")
' ----Создаём временный файл, запускаем его и удаляем----
Set tempfile = fso.CreateTextFile("2.vbs", True)
tempfile.WriteLine("Set s = CreateObject("& Chr(34) &"WScript.Shell"& Chr(34) &")") 
tempfile.WriteLine("wscript.sleep 20") 
tempfile.WriteLine("s.sendkeys "& Chr(34) &"8"& Chr(34)) 
tempfile.WriteLine("wscript.sleep 350") 
tempfile.WriteLine("s.sendkeys "& Chr(34) &"9"& Chr(34)) 
tempfile.WriteLine("wscript.sleep 350") 
tempfile.WriteLine("s.sendkeys "& Chr(34) &"7"& Chr(34)) 
tempfile.WriteLine("wscript.sleep 350") 
tempfile.WriteLine("s.sendkeys "& Chr(34) &"6"& Chr(34)) 
tempfile.WriteLine("wscript.sleep 350") 
tempfile.WriteLine("s.sendkeys "& Chr(34) &"5"& Chr(34)) 
tempfile.Close
 
oShell.Run "wscript 2.vbs", 0, False
' ----/Создаём временный файл, запускаем его и удаляем----
 
Set s = CreateObject("WScript.Shell")
c = nVar1 + 200
p = InputBox ("бла бла бла","Администратор")
 
fso.DeleteFile("2.vbs")
1
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
01.02.2015, 13:11 4
xuor, это у вас как-бы классический "лаунчер"
получился (типа пусковая ракетная установка) - один скрипт генерит
другой скрипт, а другой в свою очередь передает параметры первому,
почти "косвенная рекурсия"
0
xuor
5 / 5 / 3
Регистрация: 16.04.2014
Сообщений: 33
01.02.2015, 17:23 5
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
Set fso = createobject ("scripting.filesystemobject")
Set oShell = CreateObject("WScript.Shell")
c = nVar1 + 200
p = "8908910073619950328"
' ----Создаём временный файл, запускаем его и удаляем----
tempdist = oShell.ExpandEnvironmentStrings("%TEMP%") &  "\2.vbs"
Set tempfile = fso.CreateTextFile(tempdist, True)
tempfile.WriteLine("Set s = CreateObject("& Chr(34) &"WScript.Shell"& Chr(34) &")") 
tempfile.WriteLine("wscript.sleep 20") 
 
For i = 1 To Len(p)
tempfile.WriteLine("s.sendkeys "& Chr(34) & Mid(p,i,1) & Chr(34)) 
tempfile.WriteLine("wscript.sleep " & c) 
Next
 
tempfile.Close
oShell.Run "wscript " & tempdist, 0, False
' ----/Создаём временный файл, запускаем его и удаляем----
 
Set s = CreateObject("WScript.Shell")
c = nVar1 + 200
p = InputBox ("бла бла бла","Администратор")
fso.DeleteFile(tempdist) 
 
MsgBox "Получилось"
1
Dmitrii
2603 / 535 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
01.02.2015, 18:19 6
xuor, окно функции InputBox() может потерять фокус. Следовательно, его перед каждым вводом надо, хотя бы попытаться активировать.
1
xuor
5 / 5 / 3
Регистрация: 16.04.2014
Сообщений: 33
01.02.2015, 22:56 7
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Поправил
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
Function GetCurrentProcessID()
    With GetObject("winmgmts:root\cimv2:win32_process.Handle='" &_
        CreateObject("WScript.Shell").Exec("rundll32 kernel32,Sleep").ProcessId & "'")
        GetCurrentProcessID = .ParentProcessId
        .Terminate
    End With
End Function
 
Set fso = createobject ("scripting.filesystemobject")
Set oShell = CreateObject("WScript.Shell")
c = nVar1 + 200
p = "8908910073619950328"
pid = GetCurrentProcessID() ' получаем PID запущенного скрипта
 
' ----Создаём временный файл, запускаем его и удаляем----
tempdist = oShell.ExpandEnvironmentStrings("%TEMP%") &  "\2.vbs"
Set tempfile = fso.CreateTextFile(tempdist, True)
tempfile.WriteLine("Set s = CreateObject("& Chr(34) &"WScript.Shell"& Chr(34) &")") 
tempfile.WriteLine("wscript.sleep 20") 
 
For i = 1 To Len(p)
tempfile.WriteLine("s.AppActivate (" & pid & ")") 
tempfile.WriteLine("s.sendkeys "& Chr(34) & Mid(p,1,i) & Chr(34)) 
tempfile.WriteLine("wscript.sleep " & c) 
Next
 
tempfile.Close
oShell.Run "wscript " & tempdist, 0, False
' ----/Создаём временный файл, запускаем его и удаляем----
 
Set s = CreateObject("WScript.Shell")
p = InputBox ("бла бла бла","Администратор")
fso.DeleteFile(tempdist) 
 
MsgBox "Получилось"
2
Dmitrii
2603 / 535 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
02.02.2015, 02:41 8
Если не предполагается одновременной работы нескольких экземпляров одного и того же сценария, то для определения PID запущенного сценария можно обойтись только средствами WMI. Пример:
Visual Basic
1
2
3
4
5
Function GetCurrentProcessID()
    For Each objItem In GetObject("winmgmts:root\cimv2").ExecQuery("SELECT CommandLine,Handle FROM Win32_Process")
        If InStr(1, objItem.CommandLine, WScript.ScriptFullName, vbTextCompare) > 0 Then GetCurrentProcessID = objItem.Handle
    Next
End Function
1
02.02.2015, 02:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2015, 02:41

Ограничить ввод букв в InputBox
Здравствуйте, помогите пожалуйста, мне нужно ограничить ввод букв английских и...

ввод даты с помощью Inputbox
Добрый день создаю документ скриптом по нажатию кнопки. поля (их всего 4)...

Ограничить InputBox: ввод только вещественных чисел
Достаточно сложный вопрос по-моему,как ограничить ввод в InputBox,чтобы можно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru