Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Ввод строки через форму (http://forum.oszone.net/showthread.php?t=231284)

Jeander 26-03-2012 09:50 1886846

Ввод строки через форму
 
Имеется такой скрипт:

Код:

DIM Wsh
set wsh=WScript.CreateObject("WScript.Shell")
Set oSys = CreateObject("JSSys3.Ops")
errCode = oSys.GetTextCB(str)

wsh.Run(Chr(34) & "C:\Program Files\DameWare Development\DameWare NT Utilities 7.5\DWRCC.exe" & Chr(34) & "-c: -h: -m:" & str & " -u:User -p:%Password% " )

Нужно что-бы при запуске выходила форма, куда я бы вбивал значение для %Password%, после чего он выполнялся с введенными данными.

Iska 26-03-2012 10:12 1886874

Так?
Код:

Option Explicit

Dim strPassword


strPassword = InputBox("Enter password", "Password")

If Len(strPassword) <> 0 Then
        WScript.CreateObject("WScript.Shell").Run _
                """%ProgramFiles%\DameWare Development\DameWare NT Utilities 7.5\DWRCC.exe""" & _
                " -c: -h: -m:" & WScript.CreateObject("htmlfile").script.clipboardData.getData("Text") & _
                " -u:User -p:" & strPassword
End If

WScript.Quit 0


Jeander 26-03-2012 10:18 1886882

Решено, благодарю

Прошу прощения, а есть возможность сделать текстовое поле "паролевым", тоесть чтобы символы вводились звездочками?
И было бы идеально убрать кнопку "Отмена" в форме :)

Iska 26-03-2012 11:55 1886965

Цитата:

Цитата Jeander
Прошу прощения, а есть возможность сделать текстовое поле "паролевым", тоесть чтобы символы вводились звездочками? »

Пожалуй, есть. Надо написать HTA. Будет время — попробую.

Цитата:

Цитата Jeander
И было бы идеально убрать кнопку "Отмена" в форме »

Зачем?

Jeander 26-03-2012 13:10 1887015

Ответ "хочу" не подойдет?:)

Jeander 26-03-2012 14:41 1887063

Прошу прощения, кнопка "отмена" оказалась очень кстати

Iska 27-03-2012 05:47 1887463

Цитата:

Цитата Jeander
Ответ "хочу" не подойдет? »

Вам — да. А остальным?

С таким посылом… Если мне не интересен сам вопрос, то вряд ли я стану заниматься его решением. Как остальные коллеги — не знаю, у каждого своё мнение на этот счёт.


Цитата:

Цитата Iska
Надо написать HTA. Будет время — попробую. »

Попробовал:
читать дальше »
Код:

<html id="appHTML">
    <head>
        <meta charset="windows-1251">
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <meta http-equiv="Content-Language" content="ru">
        <title>Запуск «DameWare Mini Remote Control» с параметрами</title>
        <hta:Application
            Icon = "%ProgramFiles%\DameWare Development\DameWare NT Utilities 7.5\DWRCC.exe"
            Id="oHTA"
            ApplicationName="DameWare Mini Remote Control Executor"
            Border="normal"
            BorderStyle="normal"
            Caption="yes"
            ContextMenu="no"
            InnerBorder="yes"
            MaximizeButton="no"
            MinimizeButton="yes"
            Navigable="no"
            Scroll="auto"
            ScrollFlat="no"
            Selection="no"
            ShowInTaskbar="yes"
            SingleInstance="yes"
            SysMenu="yes"
            Version="1.0"
            WindowState="normal"
        />
        <style type="text/css">
            BODY {
                font: x-small Verdana, Arial, sans-serif;
                color: WindowText;
                background-color: ButtonFace;
            }
            .Row{
                clear:both;
            }
            .Left{
                float:Left;
                clear:none;
            }
            .Right{
                float:Right;
                clear:none;
            }
            .NonValid { color:FireBrick; }
            #Status { font: xx-small; }
        </style>
       
        <script language="VBScript">
            Option Explicit
           
            '----------------------------------------------------------------------
            Sub ExecuteDWRCC_OnClick
                ' Если введённые данные корректны…
                If ValidateFields() Then
                    With document
                        .getElementByID("Status").innerText      = "Идёт обработка…"
                       
                        .getElementByID("HostName").disabled    = True
                        .getElementByID("UserID").disabled      = True
                        .getElementByID("Password").disabled    = True
                        .getElementByID("ExecuteDWRCC").disabled = True
                       
                        .getElementByID("tagBody").style.cursor = "wait"
                    End With
                   
                    ' Опосредованно вызываем основную процедуру обработки документа
                    setTimeout "ExecuteDWRCC", 0
                End If
            End Sub
            '----------------------------------------------------------------------
           
            '----------------------------------------------------------------------
            Sub ExecuteDWRCC_OnBlur()
                ' При потере фокуса элементом SetOMR очистить строку статуса
                ' и стили элементов управления
                With document
                    .getElementByID("Status").innerText            = ""
                   
                    .getElementByID("lblHostName").className      = ""
                    .getElementByID("HostName").className          = ""
                   
                    .getElementByID("lblUserID").className        = ""
                    .getElementByID("UserID").className            = ""
                   
                    .getElementByID("lblPassword").className      = ""
                    .getElementByID("Password").className          = ""
                End With
            End Sub
            '----------------------------------------------------------------------
           
            '----------------------------------------------------------------------
            ' Функция проверки введённых данных на корректность
            '----------------------------------------------------------------------
            Function ValidateFields()
                ValidateFields = True
            End Function
            '----------------------------------------------------------------------
           
            '----------------------------------------------------------------------
            ' Mini Remote Control Command Line Switches (http://support.dameware.com/kb/article.aspx?ID=300002)
            '----------------------------------------------------------------------
            Sub ExecuteDWRCC()
                With document
                    CreateObject("WScript.Shell").Run _
                        """" & strPath2DWRCC & """ -c: -h: " & _
                        "-m:" & Trim(CStr(.getElementByID("HostName").value)) & " " & _
                        "-u:" & Trim(CStr(.getElementByID("UserID").value)) & " " & _
                        "-p:""" & CStr(.getElementByID("Password").value) & """"
                   
                    .getElementByID("Status").innerText      = ""
                   
                    .getElementByID("HostName").disabled    = False
                    .getElementByID("UserID").disabled      = False
                    .getElementByID("Password").disabled    = False
                    .getElementByID("ExecuteDWRCC").disabled = False
                   
                    .getElementByID("tagBody").style.cursor  = "auto"
                End With
            End Sub
            '----------------------------------------------------------------------
        </script>
    </head>
    <body id="tagBody" scroll="auto">
            <span Class="Row">
                <span Class="left"><span id="lblHostName">Введите имя или IP-адрес хоста:</span></span>
                <span Class="right"><input type="Text" name="HostName" value="HostName" size="40"></span>
            </span>
            <span Class="Row">
                <span Class="left"><span id="lblUserID">Введите User ID:</span></span>
                <span Class="right"><input type="Text" name="UserID" value="User ID" size="40"></span>
            </span>
            <span Class="Row">
                <span Class="left"><span id="lblPassword">Введите пароль:</span></span>
                <span Class="right"><input type="Password" name="Password" value="" size="40"></span>
            </span>
            <span Class="Row">
                <span Class="left"><span id="lblExecuteDWRCC"></span></span>
                <span Class="right"><input type="Button" name="ExecuteDWRCC" value="Запустить «DameWare Mini Remote Control»"></span>
            </span>
            <hr Class="Row" />
            <span Class="Row">
                <span id="Status">&nbsp;</span>
            </span>
    </body>
    <script language="VBScript">
        Option Explicit
       
        Dim objFSO
        Dim objShell
       
        Dim strPath2DWRCC
       
        ' Позиционирование и изменение размера окна
        With window
            .resizeTo tagBody.scrollWidth + 25, tagBody.scrollHeight + 32
            .moveTo (.screen.availWidth - tagBody.offsetWidth) \ 2, (.screen.availHeight - tagBody.offsetHeight) \ 2
        End With
       
        Set objFSO        = CreateObject("Scripting.FileSystemObject")
        Set objShell      = CreateObject("Shell.Application")
       
        strPath2DWRCC = objShell.NameSpace("shell:ProgramFiles").Self.Path & "\DameWare Development\DameWare NT Utilities 7.5\DWRCC.exe"
       
        If Not objFSO.FileExists(strPath2DWRCC) Then
            MsgBox "Не найден исполняемый файл «DameWare Mini Remote Control»:" & vbCrLf & vbCrLf & _
                strPath2DWRCC & vbCrLf & vbCrLf & "Приложение будет закрыто.", vbOkOnly + vbCritical, _
                "DameWare Mini Remote Control"
            window.close
        End If
       
        ' Первоначальное заполнение полей
        With document
            .getElementByID("HostName").value = Trim(CStr(window.clipboardData.getData("Text")))
        End With
       
        Set objShell      = Nothing
        Set objFSO        = Nothing
    </script>
</html>



Примерный вид окна:

Jeander 27-03-2012 09:19 1887527

Благодарю!

Iska 27-03-2012 09:34 1887538

Jeander, в качестве «User ID» в «DameWare Mini Remote Control» что используется?

Jeander 27-03-2012 09:41 1887546

Тип идентификации: "Encrypted Windows Logon"
User ID: Administrator

Iska 27-03-2012 10:07 1887573

Jeander, там используются свои учётные записи, да? Не имя текущего домена/пользователя?

Jeander 27-03-2012 10:09 1887580

Iska, локальные учетные записи, машины не в домене

Iska 27-03-2012 10:31 1887601

Jeander, я имею в виду: есть ли смысл подставлять имя текущего пользователя в соответствующее поле формы? Я сначала сделал так, потом меня смутило имя «User ID» из базы знаний DameWare, и я убрал этот функционал.

Jeander 27-03-2012 10:51 1887614

Iska, на удаленной машине свои у/з, отличные от пользователей на локальной машине, так что смысла нет.

Iska 27-03-2012 11:48 1887657

Jeander, спасибо, ясно.

bort-747 06-04-2012 17:33 1894761

Подскажите что делает данный скрипт?, а то что то я его запустил у себя и ничего не происходит, вписал ип, вписал админа пасс, не вышло, вписал учётку доменную и пас тоже ничего не происходит, попробовал вписать ип своей локальной машины тоже ничего не выполнят, подскажите пожалуйста, для чего это?

Iska 07-04-2012 00:06 1894913

bort-747, отпишитесь автору вопроса в личку. Вряд ли он специально станет следить за этой темой.

У меня «DameWare NT Utilities» нет, а у него есть, и работает через данную форму.


Время: 20:50.

Время: 20:50.
© OSzone.net 2001-