<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: интерактивный ввод пароля в консоли]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=969</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=969&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: интерактивный ввод пароля в консоли».]]></description>
		<lastBuildDate>Tue, 18 Dec 2007 08:53:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBScript: интерактивный ввод пароля в консоли]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=7185#p7185</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Tue, 18 Dec 2007 08:53:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=7185#p7185</guid>
		</item>
	</channel>
</rss>
