<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: интерактивный ввод пароля в консоли]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=969&amp;type=atom" />
	<updated>2007-12-18T08:53:50Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=969</id>
		<entry>
			<title type="html"><![CDATA[VBScript: интерактивный ввод пароля в консоли]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=7185#p7185" />
			<content type="html"><![CDATA[<p>В состав Windows XP, Windows Server 2003 (и, возможно, Windows Vista) входит библиотека %SystemRoot%\system32\scriptpw.dll. Она реализует объект автоматизации (COM-компонент) ScriptPW.Password, позволяющий получать от пользователя маскированный пароль с консоли.</p><p>Объект не имеет свойств и имеет всего один метод GetPassword. Демонстрация:<br /></p><div class="codebox"><pre><code>Option Explicit

Dim objFSO
Dim objScriptPW

Dim strPassword

With WScript
    If Not .Interactive Then                                      &#039; Пакетный режим работы?..
        .Interactive = True                                       &#039; ...меняем на диалоговый
    End If
    
    Set objFSO = .CreateObject(&quot;Scripting.FileSystemObject&quot;)
    
    Select Case UCase(.FullName)                                  &#039; Работаем в консоли?
        Case UCase(objFSO.BuildPath(objFSO.GetSpecialFolder(1), &quot;cscript.exe&quot;))
            &#039; === Демонстрация =========================================================
            Set objScriptPW = .CreateObject(&quot;ScriptPW.Password&quot;)  &#039; Создаём объект
            
            .StdOut.Write &quot;Enter password:&quot;                       &#039; Выводим сообщение на консоль
            strPassword = objScriptPW.GetPassword()               &#039; Ожидаем ввод пароля
            
            .Echo                                                 &#039; Выводим пустую строку (после ввода пароля
                                                                  &#039; курсор остаётся в той же строке)
            .Echo &quot;Password is [&quot; &amp; strPassword &amp; &quot;]&quot;             &#039; Выводим пароль
            .Sleep 5000
            &#039; ==========================================================================
        Case UCase(objFSO.BuildPath(objFSO.GetSpecialFolder(1), &quot;wscript.exe&quot;))
            .Echo &quot;Объект автоматизации ScriptPW.Password работает в консольном режиме&quot;
            .Quit 1
        Case Else
            .Echo &quot;Неподдерживаемый движок Windows Script Host&quot;
            .Quit 253
    End Select
End With

WScript.Quit 0</code></pre></div><p>Автор примера - <strong>alexii</strong>.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2007-12-18T08:53:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=7185#p7185</id>
		</entry>
</feed>
