Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] VBS - Спрятанный ввод

Ответить
Настройки темы
VBS/WSH/JS - [решено] VBS - Спрятанный ввод

Пользователь


Сообщения: 118
Благодарности: 1


Конфигурация

Профиль | Отправить PM | Цитировать


Нужна функция вроде InputBox и при вводе отображались звездочки
Но отправлялась именно введенная информация а не звездочки
(Нужно для формы ввода пароля)

Отправлено: 19:30, 01-09-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Ragnazar, можете попробовать так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const READYSTATE_COMPLETE = 4

Dim objIE
Dim objWindow

Dim boolDone
Dim strPassword


Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")

With objIE
	.Navigate "about:blank"
	
	Do
		WScript.Sleep 100
	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 & _
				"	</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
	
	Do
		WScript.Sleep 100
	Loop Until boolDone
	
	On Error Resume Next
	.Quit
	On Error Goto 0
End With

Set objIE = Nothing

If Not IsEmpty(strPassword) Then
	WScript.Echo "Password is [" & strPassword & "]"
Else
	WScript.Echo "Password is not entered"
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
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
'=============================================================================

Последний раз редактировалось Iska, 02-09-2012 в 11:01. Причина: Поправил оформление (выравнивание) кода

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:52, 02-09-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 118
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо!
Только вот при пустом пароле (ничего не вводя) выдает Password is []
Тоесть else почему-то не работает

Можно-ли как-то изменить активное окно? А то папка со скриптом остается активным

Отправлено: 16:05, 03-09-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Ragnazar:
Только вот при пустом пароле (ничего не вводя) выдает Password is [] »
Ragnazar, всё верно. Ничего не ввели и нажали «OK»/«Enter» — пароль пустой. Нажали «Отмена»/«Esc» или просто закрыли диалог — то есть, отказались от ввода пароля — это другое. Попробуйте.

Цитата Ragnazar:
Можно-ли как-то изменить активное окно? А то папка со скриптом остается активным »
Вопрос не понятен. Поясните.

Отправлено: 17:00, 03-09-2012 | #4


Пользователь


Сообщения: 118
Благодарности: 1

Профиль | Отправить PM | Цитировать


Когда создается некое окно (от боксов до ie) то они как-то на заднем плане.
Что-бы они стали активными на них надо нажать но можно-ли автоматически это сделать?

Отправлено: 09:25, 05-09-2012 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Ragnazar, понятней не стало. Что за «боксы»?

Отправлено: 11:37, 05-09-2012 | #6


Пользователь


Сообщения: 118
Благодарности: 1

Профиль | Отправить PM | Цитировать


InputBox NsgBox Wscript.Echo
Когда на alt+Tab нажимаешь то меняется активное окно

Отправлено: 19:01, 06-09-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Ясно. «Боксы» — это окна диалогов.

Теперь переведите всю фразу на русский язык:
Цитата Ragnazar:
Когда создается некое окно (от боксов до ie) то они как-то на заднем плане. »

Отправлено: 20:19, 06-09-2012 | #8


Пользователь


Сообщения: 118
Благодарности: 1

Профиль | Отправить PM | Цитировать


Когда создается диалоговое окно то что-бы оно было поверх всех окон мне нужно на него нажать
Или выбрать через Alt+Tab
Или нажать на него на панели Пуск (В нижней части где все включеные окна)

Отправлено: 20:28, 06-09-2012 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Ragnazar:
Когда создается диалоговое окно »
Речь идёт всё ещё про это окно, создаваемое скриптом:



?

Отправлено: 08:14, 07-09-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] VBS - Спрятанный ввод

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2010 - рукописный ввод Everyman Microsoft Office (Word, Excel, Outlook и т.д.) 1 25-04-2013 17:31
7 / 2008 R2 - ввод в домен parrabol Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 0 10-07-2012 12:51
C/C++ - Ввод с консоли Romms Программирование и базы данных 1 18-02-2012 06:01
C/C++ - Ввод формул Doom77 Программирование и базы данных 7 05-11-2009 00:49
Ввод данных на T39 fantik Автоматическая установка Windows 2000/XP/2003 8 30-01-2007 15:32




 
Переход