Методы взаимодействия с пользователем

Кирилл

Команда форума
Администратор
Сообщения
14,085
Реакции
6,139
Баллы
993
Вариантов много,поэтому создам эту тему и все свои почему касаемо этого вопроса буду тут задавать...

На данный момент меня интересовал вывод сообщения с подтверждением выбора.
CHOICE тут не годится,поэтому пришел к комбинации vbs-msg.
Все хорошо,но например в такой конструкции появился нежданчик в виде кодировки:
Код:
set m.msg=^
  Версия системы определена верно? ^&^                                   
  cmd /U /C echo Wscript.Echo Msgbox^(replace^(Wscript.Arguments^(0^),"&",vbLF^),68,"Подтверждение выбора"^)>"msgbox.vbs"
  for /f %%a in ('cscript "msgbox.vbs" "%m.msg%"^& del "msgbox.vbs"') do set err=%%a
  if "%err%"=="6"  goto redirect
  if "%err%"=="7" ( chcp 1251>nul
                    (Echo Вам необходимо выбрать файл самостоятельно,соответствующий версии Вашей операционной системы.^
                      Перейдите по ссылке в браузере и скачайте нужный твик,либо обратитесь за помощью на форум SafeZone.cc|msg * /v /w)
                      start http://safezone.cc/threads/vosstanovlenie-znachenij-zapuska-sistemnyx-sluzhb-po-umolchaniju.21154/
                        ping -n 10 127.0.0.1 > NUL)
Суть в том что msg воспринимает только кодировку 1251,в таком случае получаю возврат кракозябров в консоль...
Какие советы будут?
 
Последнее редактирование:
  • Like
Реакции: akok

Кирилл

Команда форума
Администратор
Сообщения
14,085
Реакции
6,139
Баллы
993
Поработал над вариантами-для более сложных и многоуровневых диалогов больше годится другая конструкция и ЯП.
upload_2013-11-24_20-57-5.png
Код:
<html>
  <head>
    <title>Восстановления запуска системных служб по умолчанию</title>
      <hta:application
      borderStyle="complex"
      windowState=" minimize"
      applicationName="HTAPOSTCARD"
      innerBorder="yes"
      selection="yes"
      scroll="no"
      caption="yes"
      maximizebutton="yes"
      minimizebutton="yes"
      contextmenu="yes" />
    <style type="text/css">
    </style>
  </head>
  <BODY BACKGROUND="images/logo_sz.png"
  BGCOLOR="Aqua"
  TEXT="Yellow"
  LINK="#FF0000"
  VLINK="#505050"
  MARGINHEIGHT="30"
  TOPMARGIN="30"
  LEFTMARGIN="40"
  MARGINWIDTH="40">

  <H1 ALIGN="center">Выберите в меню версию Вашей операционной системы,а так же соответствую разрядность</H1>
  <script language="***t">
.............
тут кидаем блок на любом ЯП
.................

<p>Параметры выбраны?</p>
<input type="button" value="Установить запуск системных служб по умолчанию" name="run_button"  onClick="*****">
</body>


  </body>
</html>
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,392
Реакции
5,892
Баллы
718
Koza Nozdri, для более, чем 1 строки тут уж проще написать функцию-обертку с перекодировщиком.
Я пока не буду этим заниматься. Может, FraidZZ-у будет интересно, спрошу.

На счет HTA - согласен. Давай понемногу перебираться на визуальный интерфейс.
 

FraidZZ

Активный пользователь
Сообщения
16
Реакции
18
Баллы
233
Я пока в прострации - выдолбался за день :sleep:
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,392
Реакции
5,892
Баллы
718
Да, сегодня интересные штучки показывал. Правда, я так и не нашел где применить CrLf.

Koza Nozdri, вот такая функция у меня получилась:
CMD/BATCH:
@echo off
SetLocal EnableExtensions
call :msg "Строка № 1 \nСтрока № 2"
pause
Exit /B

:msg
  chcp 866 >NUL& for /F "delims=" %%a in ("%~1") do chcp 1251 >NUL& call :convert "%%~a"& chcp 866 >NUL& Exit /B
:convert
  set "text=%~1"
  (@for %%a in ("%text:\n=" "%") do @echo.%%~a) | msg *
Exit /B
Единственное ограничение - не передавай в функцию кавычки.
 
Последнее редактирование:
Сверху Снизу