Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
MaksKompanienko
1 / 1 / 0
Регистрация: 26.07.2016
Сообщений: 45
1

Можно ли сделать так, чтобы выбор пункта меню осуществлялся с помощью клавиатуры или мыши?

26.07.2016, 15:46. Просмотров 921. Ответов 6
Метки нет (Все метки)

Я начал делать небольшое меню для удобства в управлении компом ( я еще не доделал ) . Там в начале спрашивает пароль и логин - логин можна любой вписать а пароль только рание записанный в бат файл . Так вот я хотел сделать так чтобы пароль можно было изменять пробовал и с переменными и с файлами но переменным почемуто не задавлось значение а файлы не читались , я долго морочился над этой проблемой но так и не решил. Также я хочу сделать меню чтобы можно было выберать пункт мышкой или клавиатурой , допустим надо пункт находящийся на 2 пункта ниже тогда к переменной x добавить столько идениц сколько нажата клавиатура тоесть 2 и чтобы если переменная x = 1 тогда выделить пункт 1 и тд. И возможно ли выбирать пункты мышкой как в MS-DOS редакторе ? Можите мне помочь ?


Но пока что там выбор пунктов немного другой : допустим нажал 1 и enter выбрался первый пункт и тд ( но мне такой выбор пунктов не нтравится поэтому я к вам и обратился )
А вот и сам код
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
md d:\csprog\editor
md d:\csprog\info
@echo off
cls
:st
title Program menu
echo. > "INFO MENU"
findstr /V /A:0C "1-10" "INFO MENU*"
del "INFO MENU"
SET /P NAME=Name:
SET /P pass=Password:
if "%pass%"=="132132" (color 0e) else (goto 1a)
cls
ECHO. Вход в систему выполнен в %time%. Под логином "%NAME%"  > D:\csprog\info\info%random%.txt
: 2
color 0f
echo.Wellcome %NAME%> "                  MENU"
findstr /V /A:0c "1-10" "                  MENU*"
del "                  MENU"
 
 
echo.  /--------\    > "         MENU              ,"
findstr /V /A:a1 "1-10" "         MENU              ,*"
del "         MENU              ,"    
 
echo. /==========\   > "Clear history              1"
findstr /V /A:71 "1-10" "Clear history              1*"
del "Clear history              1" 
                                                                   
echo. l==------l==l  > "Text editor                2"
findstr /V /A:81 "1-10" "Text editor                2*"
del "Text editor                2"    
 
echo. l==/     l--l  > "           3               ,"
findstr /V /A:71 "1-10" "           3               ,*"
del "           3               ,"    
 
echo. l==1          > "           4               ,"
findstr /V /A:81 "1-10" "           4               ,*"
del "           4               ,"    
 
echo. l==1> "           5               ,"
findstr /V /A:71 "1-10" "           5               ,*"
del "           5               ,"    
 
echo. l==l > "           6               ,"
findstr /V /A:81 "1-10" "           6               ,*"
del "           6               ,"    
 
echo. l==\     l--l  > "           7               ,"
findstr /V /A:71 "1-10" "           7               ,*"
del "           7               ,"    
 
echo. l===-----l==l > "           8               ,"
findstr /V /A:81 "1-10" "           8               ,*"
del "           8               ,"    
 
echo. \===========/  > "           9               ,"
findstr /V /A:71 "1-10" "           9               ,*"
del "           9               ,"    
 
echo.  \--------/  >"         EXIT              ,"
findstr /V /A:ce "1-10" "         EXIT              ,*"
del "         EXIT              ,"    
 
SET /P x=You choise:
 
if "%x%"=="1" (goto clhi)
if "%x%"=="2" (goto edit)
::WorkThread
 
 
::Set /A i+=1
::Echo  [%i%]
::Ping -n 2 127.0.0.1>nul
 
::GoTo WorkThread
 
 
pause>nul
: 1a
echo. Пользеватель "%NAME%" пытался войти в систему под паролем "%pass%" в%time%. > D:\csprog\info\info%random%.txt
cls
echo. > "Worng password"
findstr /V /A:0c "1-10" "Worng password*"
del "Worng password"
Ping -n 3 127.0.0.1>nul
cls
goto st
 
: clhi
cls
del /Q D:\csprog\info
echo. > "History cleared"
findstr /V /A:0E "1-10" "History cleared*"
del "History cleared"
pause
cls
goto : 2
: edit
 
echo. > d:\csprog\editor\editfile.txt
edit d:\csprog\editor\editfile.txt
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2016, 15:46
Ответы с готовыми решениями:

Можно ли сделать так, чтобы в bat-файле при ручном закрытии программы происходило действие?
Всем привет у меня вопрос можно ли сделать что бы в bat файле при ручном...

Можно ли сделать так, чтобы при старте программы запускался батник (без использования ярлыков)?
Здравствуйте! Имеется программа, с которой будет работать моя. Мне нужно,...

Сделать меню в графическом режиме, чтобы выбор пункта осуществлялся с помощью стрелок на клавиатуре
Помогите, пожалуйста, сделать меню в графическом режиме, чтобы выбор пункта...

Как сделать так, чтобы можно добавлять, перемещать и увеличивать графические объекты с помощью мыши?
Как сделать чтобы можно добавлять перемещать и увеличивать графические объекты...

Переделайте программу так, чтобы ввод и вывод осуществлялся с помощью текстовых файлов
Переделайте программу так, чтобы ввод и вывод осуществлялся с помощью текстовых...

6
volodin661
26.07.2016, 19:19
  #2

Не по теме:

интерпретатор cmd ( в девичестве bat ) абсолютно непригоден
для программирования ( по сравнению со скриптовыми языками высокого уровня ),
но если, например, ты сидишь в российской тюрьме за перепост ВКонтакте и тебе надо накопить ненависть и закалить волю, то это будет самое то.

0
MaksKompanienko
1 / 1 / 0
Регистрация: 26.07.2016
Сообщений: 45
27.07.2016, 11:49  [ТС] 3
volodin661 мне нужно именно на bat
0
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
27.07.2016, 11:56 4
Как вы это себе представляете? Просто я не понял зачем городить огород с
допустим надо пункт находящийся на 2 пункта ниже тогда к переменной x добавить столько идениц сколько нажата клавиатура тоесть 2
, если у вас есть уже нормальное меню?
0
MaksKompanienko
1 / 1 / 0
Регистрация: 26.07.2016
Сообщений: 45
27.07.2016, 12:29  [ТС] 5
Vergil так будет на много удобние
0
alpap
1577 / 1231 / 401
Регистрация: 26.04.2015
Сообщений: 4,328
27.07.2016, 20:08 6
Лучший ответ Сообщение было отмечено MaksKompanienko как решение

Решение

MaksKompanienko,
Вот кто-то делал динамическое меню, валялось у меня в закромах, не разбирался, но ничего сложного:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Создать txt
Создать bat
Создать reg
Создать папку
#####
set width=21
set height=11
@echo off
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
mode con:cols=%width% lines=%height%
set /a Nstr=0
for /f "tokens=1* delims=" %%i in (%~dpf0) do (
    if "%%i"=="#####" goto begin
    set /a Num+=1
    set menu!Num!=!menu%Num%!%%i)
:begin
set menu1=* %menu1%
set NumT=1
:str
CLS
for /l %%i in (1,1,%Num%) do (echo.!menu%%i!)
echo. __________________
echo.^| W-Вверх          ^|
echo.^| S-Вниз           ^|
echo.^| R-Запуск         ^|
echo.^| Q-Выход          ^|
echo.^|__________________^|
choice /c wsrq /n 
if %errorlevel%==1 call :math "1" "%Num%" "-1"
if %errorlevel%==2 call :math "%Num%" "1" "+1"
if %errorlevel%==3 call :%NumT%
if %errorlevel%==4 goto xt
goto str
:xt
endlocal
exit /b
:math
set menu%NumT%=!menu%NumT%:~2!
if %NumT%==%~1 (set /a NumT=%~2) else (set /a NumT=%NumT%%~3)
set menu%NumT%=* !menu%NumT%!
exit /b
:1
echo 1
pause
exit /b
:2
echo 2
pause
exit /b
 
 
инструкция:в начале до 5 диезов вписываем название пунктов меню, 
в конце создаем блок:
 
(X номер строки пункта, в этом блоке описываем нужные команды для пункта меню)
:X
exit /b
Дерзайте!
1
MaksKompanienko
1 / 1 / 0
Регистрация: 26.07.2016
Сообщений: 45
28.07.2016, 20:30  [ТС] 7
спаисбо
0
28.07.2016, 20:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2016, 20:30

Как сделать так чтобы меню вызывалось правой кнопкой мыши?
Как сделать так чтобы меню вызывалось правой кнопкой мыши? Ниже приведено меню...

как сделать так, чтобы файл открывался, к примеру по тройному или четверному щелчку мыши?
Друзья, есть какие-нибудь соображения? А то по умолчанию в винде файлы...

Можно ли сделать так, чтобы после закрытия полноэкранного приложения, автоматом винда переключалась на рабочий стол, а не в главное меню старт?
Здравствуйте. У меня стоит винда восьмая. Когда запускаешь приложения,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru