1

Тема: HTA+VBS: Выбор файла обработать событие

Выбираю файл и после выбора при нажатии на кнопку "ок" нужно что б сработал обработчик события использую следующий код:

"<input type="file" SIZE=65 name="txt1" id="ChoosePut" >" 

В интернете пересмотрел целую кучу решений, но все сводятся к накладывание картинки. А нельзя ли заменить обычной кнопкой input ну или текстом типа выбрать файл. Или разработчики закрыли все возможные лазейки с точки зрения безопасности данного механизма ?

2

Re: HTA+VBS: Выбор файла обработать событие

Ничего не понятно.

3

Re: HTA+VBS: Выбор файла обработать событие

Формируют hta в hta присутствует данный код.
1) Отображается текстовое окошко и кнопка обзор.
2) При нажатии на кнопку обзор появляется окно выбора файла.
3) Выбираю файл нажимаю кнопку ок
4) имя файла и путь его размещения отображается в текстовом окне, которое располагается рядом с кнопкой обзор.
Так все работает.
Так вот, мне нужно что б например после нажатии кнопки ок (после выбора файла) ну например выводился MsgBox.

4

Re: HTA+VBS: Выбор файла обработать событие

Покажите Ваш код.

5

Re: HTA+VBS: Выбор файла обработать событие

wildwolf007, уже обсуждали это с Вами в этой теме ? Что-то не получилось ?

Тут примеры на VBS.

Вот самый простой пример:

<!doctype html>
<html>
    <object id=oDlg classid='clsid:3050F4E1-98B5-11CF-BB82-00AA00BDCE0B'></object>
    <head>
    </head>
    <body>
        <script language="vbscript">
            Option Explicit
            Sub window_onload()
                Dim sPathName
                Dim sInitFile
                Dim sInitDir
                Dim sFilter
                Dim sTitle
                
                sInitFile = ""
                sInitDir = ""
                sFilter = "Картинки (*.jpg;*.gif;*.png;*.bmp)|*.jpg;*.gif;*.png;*.bmp|Все файлы (*.*)|*.*"
                sTitle = "Выберите картинку..."
                
                sPathName = oDlg.openfiledlg(CStr(sInitFile), CStr(sInitDir), CStr(sFilter), CStr(sTitle))
                
                MsgBox sPathName
            End Sub
        </script>
    </body>
</html>
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

6

Re: HTA+VBS: Выбор файла обработать событие

Xameleon
Вы использовали при запуске окна, а возможно сделать кнопочку с названием "Выбрать файл" и что б при нажатии этой кнопочки запускалась меню выбора файла? (Форматы можно все)

alexii
Вот код:

<html>
    <head>
        <title>Моё HTA-приложение</title>
            <hta:application
                id = "oHTA"
                ApplicationName = "MyTestApplication"
                Border = "Dialog"
                BorderStyle = "Complex"
                Icon = "C:\Program Files\Windows NT\hypertrm.exe"
                InnerBorder = "No"
                MaximizeButton = "No"
                MinimizeButton = "No"
                Scroll = "No"
                Selection = "No"
                ShowInTaskBar = "No"
                SingleInstance = "Yes"
                Version = "1.3"
            />
            
        <script language="javascript">
            var WINDOW_WIDTH = 800
            var WINDOW_HEIGHT = 600
            window.resizeTo(WINDOW_WIDTH, WINDOW_HEIGHT);
            window.moveTo((window.screen.width - WINDOW_WIDTH) / 2, (window.screen.height - WINDOW_HEIGHT) / 2);
        </script>
        
        <script language="VBScript">
            
            Sub ChoosePut_onclick()
                
                MsgBox document.getElementByID("ChoosePut").value
                
                
                
                
                Dim objHTMLOptionElement
                Set objHTMLOptionElement = window.document.createElement("OPTION")
                objHTMLOptionElement.Text  = document.getElementByID("ChoosePut").value 
                objHTMLOptionElement.Value = " "
                MenuTextAccessRun.Add objHTMLOptionElement
            
            End Sub
            
        </script>
    </head>
    <body>
        <div class="unvisible" id="TextAccess">
            <select multiple id="MenuTextAccessRun" size="15" style="width:560px"></select>
        </div>
        
        <p>Выберите ошибочный файл:</p>
        <input type="file" SIZE=-1 name="txt1" id="ChoosePut" >
        
        
    </body>
</html>

7

Re: HTA+VBS: Выбор файла обработать событие

Вся проблема в том, что после выбора файла путь не отображается в таблице.

8

Re: HTA+VBS: Выбор файла обработать событие

wildwolf007, прошу прощения, но Ваши вопросы вводят в ступор.

Как отвечать на такой вопрос ?

а возможно сделать кнопочку с названием "Выбрать файл" и что б при нажатии этой кнопочки запускалась меню выбора файла?

Мой ответ - Конечно возможно.

Встречный вопрос - Что Вам мешает это сделать ???

Вся проблема в том, что после выбора файла путь не отображается в таблице.

Ну так надо код написать, чтобы он отображался.

К тому же зачем Вы используете VBScript и JavaScript одновременно ?

Банальный пример:


<html>
    <head>
        <title>Моё HTA-приложение</title>
        <hta:application
            id = "oHTA"
            ApplicationName = "MyTestApplication"
            Border = "Dialog"
            BorderStyle = "Complex"
            Icon = "C:\Program Files\Windows NT\hypertrm.exe"
            InnerBorder = "No"
            MaximizeButton = "No"
            MinimizeButton = "No"
            Scroll = "No"
            Selection = "No"
            ShowInTaskBar = "No"
            SingleInstance = "Yes"
            Version = "1.3"
        />
        <script language="JavaScript">
            var WINDOW_WIDTH = 800;
            var WINDOW_HEIGHT = 600;
            window.resizeTo(WINDOW_WIDTH, WINDOW_HEIGHT);
            window.moveTo((window.screen.width - WINDOW_WIDTH) / 2, (window.screen.height - WINDOW_HEIGHT) / 2);
            
            function test(){
                var sFileName =    showOpenFileDialog();
                if (sFileName != '') {
                    // Создаём элемент для добавления элемента списка
                    var oOption = document.createElement("option");
                    // Задаём текст и значение элемента
                    oOption.text = sFileName;
                    oOption.value = sFileName;
                    // Добавляем элемент в список
                    oSelect.add(oOption);
                } else {
                    alert('Файл не выбран !');
                }
            }
            
            // Функция выбора файла
            function showOpenFileDialog(){
                // динамически создаём поле ввода
                var oInput = document.createElement("input");
                // Указываем его тип (текстовое поле / выбор файла / т.п...)
                oInput.type = 'file';
                // Добавляем его в документ
                document.appendChild(oInput);
                // Скрываем элемент
                oInput.style.display = "none";
                // Эмулируем событие нажатия на поле ввода
                oInput.click();
                // Получаем значение из поля
                var sValue = oInput.value;
                // Удаляем поле из документа
                document.removeChild(oInput);
                // Возвращаем из функции
                return sValue;
            }
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td><select id="oSelect" size="15" multiple></select><br></td>
            </tr>
            <tr>
                <td><button type="file" onclick="test()">Выбор файла</button></td>
            </tr>
        </table>
    </body>
</html>
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !