Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
MrLimon
5 / 2 / 1
Регистрация: 01.11.2012
Сообщений: 121
1

Действия по нажатию клавиш

23.07.2013, 18:05. Просмотров 1666. Ответов 10
Метки нет (Все метки)

Возможноли заставить программу реагировать на нажатие клавиш? ну тоесть "если нажали "Z" , то выполнять тыры-пыры"?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2013, 18:05
Ответы с готовыми решениями:

Перемещение изображения в пределах формы по нажатию клавиш
Ребята как сделать программу в которой бы изображение перемещалось по форму по...

Нажатие-отжатие кнопок по нажатию-отжатию клавиш на клавиатуре
Всем доброго времени суток! Проблема такая: 1) В VB 6.0 нужно описать кнопку...

Включить таймер, выполняющий необходимые действия, по нажатию кнопки
как сделать так что бы включался таймер по нажатию кнопки и выполнял...

Разные действия по нажатию на кнопку в зависимости от состояния CheckBox-а
У меня 2 CheckBox 'са. необходимо, чтобы при выборе первого: - при нажатии...

Добавление текстбоксов по нажатию клавиши и удаление по нажатию другой кнопки
Всем доброго времени суток. Хотел попросить помощи в написании следующего...

10
onlie
16 / 19 / 5
Регистрация: 22.07.2013
Сообщений: 133
23.07.2013, 18:13 2
Это? <<ТыК>>
0
MrLimon
5 / 2 / 1
Регистрация: 01.11.2012
Сообщений: 121
23.07.2013, 19:44  [ТС] 3
ладно, попрошу напрямую... В общем, нужно чтоб по нажатию на не важно какую кнопку, в окне выводился таймер обратного отсчета с 6 минут
0
Pro_grammer
Модератор
6148 / 2229 / 440
Регистрация: 24.04.2011
Сообщений: 3,939
Записей в блоге: 10
23.07.2013, 20:32 4
Цитата Сообщение от MrLimon Посмотреть сообщение
ладно, попрошу напрямую...
Спасибо за доверие!

На форме Label1 и Timer1

Visual Basic
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
Dim tt As Long
Public Function GetTime(ByVal Seconds As Long) As String
    If Seconds <= 0 Then
        GetTime = "00:00:00"
        Timer1.Enabled = False
        MsgBox "BABAX!!!"
        Exit Function
    End If
   
    Dim Hour As Single, min As Single, Sec As Single
   
    Hour = Seconds / 60 / 60
    Sec = Seconds Mod 60
    min = (Hour - Int(Hour)) * 60
 
    GetTime = Format(Int(Hour), "00") & ":" & Format(Int(min), "00") & ":" & Format(Int(Sec), "00")
End Function
 
 
Private Sub Form_KeyPress(KeyAscii As Integer)
Timer1.Enabled = True ' нажатие на любую клавишу активирует таймер
End Sub
 
Private Sub Form_Load()
Timer1.Enabled = False
Label1.Caption = "Жми любую клавишу для активации"
tt = 360 ' На таймере 6 минут (60х60)
End Sub
 
Private Sub Timer1_Timer()
tt = tt - 1
Label1.Caption = GetTime(tt)
 
End Sub
0
MrLimon
5 / 2 / 1
Регистрация: 01.11.2012
Сообщений: 121
23.07.2013, 21:06  [ТС] 5
Pro_grammer, ничего не происходит после нажатия)
ну или работает, но не отображается
0
Pro_grammer
Модератор
6148 / 2229 / 440
Регистрация: 24.04.2011
Сообщений: 3,939
Записей в блоге: 10
23.07.2013, 21:15 6
Цитата Сообщение от MrLimon Посмотреть сообщение
ничего не происходит после нажатия)
Я бы попросил ваш проект в студию!
Мой проект работает 100%
Предположу, что в вашем проекте в Таймере не установлен интервал.
Измените эту процедуру так:
Visual Basic
1
2
3
4
5
6
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 1000
Label1.Caption = "Жми любую клавишу для активации"
tt = 360 ' На таймере 6 минут (60х60)
End Sub
2
MrLimon
5 / 2 / 1
Регистрация: 01.11.2012
Сообщений: 121
23.07.2013, 21:59  [ТС] 7
Pro_grammer, воот так работает)
только начинаю разбираться с таймерами... мутарно как-то

Добавлено через 40 минут
хм, может это что-то из разряда фантастики... но, можно как-нибудь сделать чтобы таймер начинал отсчет после нажатия, даже если окно программы не является активным?
0
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
24.07.2013, 01:00 8
Лучший ответ Сообщение было отмечено The trick как решение

Решение

MrLimon, для этого нужно устанавливать глобальный хук. См. тему: Создание Крестика в центре экрана
2
MrLimon
5 / 2 / 1
Регистрация: 01.11.2012
Сообщений: 121
25.07.2013, 16:28  [ТС] 9
Dragokas, понятия не имею что это такое, в теме тож ниче не понял))

ну можно по другому, ведь реально сделать так чтоб окно программы было всегда активным?
0
Pro_grammer
Модератор
6148 / 2229 / 440
Регистрация: 24.04.2011
Сообщений: 3,939
Записей в блоге: 10
25.07.2013, 17:44 10
Цитата Сообщение от MrLimon Посмотреть сообщение
ведь реально сделать так чтоб окно программы было всегда активным?
Реально конечно. Но тут уже полная смена концепции. Таймер нужен будет системный SetTimer, а не Timer1_Timer, и нажатие клавиши ловить не с помощью Form_KeyPress, а системной API GetAsyncKeyState.
В общем, почти всё надо переписать. Фактически материал в той теме, на которую ссылается Dragokas есть.
Начинай уже сам что то писать, а то это уже не помощь, а работа за тебя.
0
Yury Komar
Модератор
Эксперт .NET
2377 / 2183 / 348
Регистрация: 27.01.2014
Сообщений: 3,913
Завершенные тесты: 1
04.02.2014, 18:15 11
А мне вот тоже предстоит таймер написать, у которого 12 минут будет всего и с обратным отсчетом времени и по окончании проигрывать mp3 звуковой файл (+ добавить опцию сколько раз повторять и с каким интервалом повторять, тоесть если файл еще не закончил играть, чтоб поверх накладывался он же и еще раз), плюс настройки запуска и остановки займера по заданному времени, так же по нажатию определенных сочетаний клавишь или просто нажав одну определенно заданную кнопку на клавиатуре, ну и при окончании времени чтоб перезапускался по новой и выдавал сообщение что алярм сработал, но при этом если работает Скринсейвер - не сбрасывать его а показать поверх него. (опция отключаема по желанию) ну и так. рад доработок....

Это для работы нужна эта программка... Желательно написать не торопясь за недельку...

Если что - создам по ней новую темку...
0
04.02.2014, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2014, 18:15

Арифметические действия над числами. Выбор номера действия. Перевод с Pascal
Арифметические действия над числами пронумерованы следующим образом: 1 —...

Действия по нажатию клавиш на клавиатуре
Всем Доброго времени суток. При видите пожалуйста пример программирования...

как нарисовать блок схему если действия происходят по нажатию клавиш
как нарисовать блок схему если действия происходят по нажатию клавиш не могу...


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

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

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