Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 2 / 1
Регистрация: 15.07.2022
Сообщений: 37

Код не реагирует на нажатие клавиши. Как это исправить?

16.07.2022, 08:55. Показов 1214. Ответов 7

Студворк — интернет-сервис помощи студентам
Я дописал код(в Visual Studio Code, если интересно) и начал его тестировать.

C#
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
//Рандомер слотов
using System.Runtime.InteropServices;
using WindowsInput;
class Program {
    [DllImport("user32.dll")]
    static extern short GetAsyncKeyState(Int32 vKey);
    public static bool chooseARandomSlot = false;
    
    public static void Main() {
//здесь начинаются проблемы
 
 
 
        byte?[,] slotsAndChances = SlotsAndChances();
        System.Console.WriteLine("Рандомер начал свою работу. Для активации нажмите R.");
        while(true) {
            int VK_R = 0x51;
            short keyStatus = GetAsyncKeyState(VK_R);
            Thread.Sleep(500);    //не обращайте внимание на Thread, я его вписал, когда пытался понять, в чём ошибка
            if ((keyStatus & 1) == 1) {
                chooseARandomSlot = !chooseARandomSlot;
                
            }
            if(!chooseARandomSlot) {
                System.Console.WriteLine("!!");    //тоже написал, когда разбирался, в чём ошибка
                Thread.Sleep(1500);
                continue;
            }
            System.Console.WriteLine("!");
            RandomSlotSelection(slotsAndChances);
            Console.ReadLine();    // пытался понять, в чём ошибка, и понял, что до этой части кода программа не доходит
        }
    }
//здесь я ещё не проверял
 
 
 
    public static byte?[,] SlotsAndChances() {
        List<byte> slotNumber = new List<byte>();
        List<byte> chanceOfSlotLoss = new List<byte>();
        byte slot;
        byte chance;
        byte sumOfChances = 0;
        bool cnt = false;
        byte?[,] slotsAndChances = new byte?[9,2];
        Console.WriteLine("Введите 100 для завершения ввода номеров слотов и их шансов выпадения. Введите 101 для очистки списков номеров слотов и шансов выпадения слотов. Нажмите R для активации Рандомера слотов.");
        for(byte i = 0; i < 9; i++) {
            System.Console.WriteLine("Укажите номер слота");
            slot = byte.Parse(Console.ReadLine());
            for(byte a = 0; a < slotNumber.Count; a++) {
                if(slot == slotNumber[a]) {
                    System.Console.WriteLine("Вы уже вводили этот слот. Если вы хотите переписать список слотов и шансов их выпадения введите 101. Если вы хотите переписать последний слот введите 0");
                    byte answer = byte.Parse(Console.ReadLine());
                    if(answer == 0) {
                        i--;
                        slotNumber.Remove(slot);
                        cnt = true;
                        break;
                    }
                    if(answer == 101) {
                        slotNumber.Clear();
                        chanceOfSlotLoss.Clear();
                        i = 11;
                        System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
                    }
                }
            }
            if(cnt == true) {
                cnt = false;
                continue;
            
            }
            if(slot == 100) {
                i = 10;
                Console.WriteLine("Вы завершили ввод номеров слотов и шансов их выпадения");
            }
            if(slot == 101) {
                slotNumber.Clear();
                chanceOfSlotLoss.Clear();
                i = 11;
                System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
            }
            slotNumber.Add(slot);
            if(i == 11) {
                slotNumber.Remove(slot);
 
                break;
            }
            if(i == 10) {
                slotNumber.Remove(slot);
                break;
            }
            //шанс выпадения слота
            System.Console.WriteLine("Укажите шанс выпадения слота");
            chance = byte.Parse(Console.ReadLine());
            if(chance == 100) {
                i = 10;
                slotNumber.Remove(slot);
                Console.WriteLine("Вы завершили ввод номеров слотов и шансов их выпадения");
            }
            if(chance == 101) {
                slotNumber.Clear();
                chanceOfSlotLoss.Clear();
                i = 11;
                System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
            }
            chanceOfSlotLoss.Add(chance);
            if(i == 11) {
                slotNumber.Remove(slot);
                chanceOfSlotLoss.Remove(chance);
 
                break;
            }
            if(i == 10) {
                slotNumber.Remove(slot);
                chanceOfSlotLoss.Remove(chance);
                break;
            }
            sumOfChances += chanceOfSlotLoss[i];
            System.Console.WriteLine("Сумма шансов всех слотов сейчас равна " + sumOfChances + " %");
            if(sumOfChances == 100) {
                System.Console.WriteLine("Сумма шансов выпадения всех слотов стала 100 %. Ввод слотов и шансов их выпадения был завершён.");
                break;
            }
            if(sumOfChances > 100) {
                System.Console.WriteLine("Сумма всех шансов стала больше 100 %. Если вы хотите переписать список слотов и шансов их выпадения введите 101. Если вы хотите переписать последний слот и шанс его выпадения введите 0");
                byte answer = byte.Parse(Console.ReadLine());
                if(answer == 0) {
                    slotNumber.Remove(slot);
                    chanceOfSlotLoss.Remove(chance);
                    --i;
                    cnt = true;
                }
                if(answer == 101) {
                    slotNumber.Clear();
                    chanceOfSlotLoss.Clear();
                    System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
                    break;
                }
            if(cnt == true) {
                cnt = false;
                continue;
            }
            }
        }
        for(byte j = 0; j < slotNumber.Count; j++) {
            slotsAndChances[j,0] = slotNumber[j];
            slotsAndChances[j,1] = chanceOfSlotLoss[j];
        }
        return slotsAndChances;
        
    }
    public static byte? RandomSlotNumber(byte?[,] slotsAndChances) {
        Random randomIndex = new Random();
        List<byte?> randomSlot = new List<byte?>(100);
        for(byte j = 0; j < 9; j++) {
            if(slotsAndChances[j, 0] == null) {
                continue;
            }
            for(byte i = 0; i < slotsAndChances[j,1]; i++) {
                int index = randomIndex.Next(0,100);
                if(randomSlot[index] != null) {
                    randomSlot[index] = slotsAndChances[j,0];
                }
                else {
                    --j;
                    continue;
                }
 
            }
        }
        return randomSlot[randomIndex.Next(0,100)];
    }
    public static void RandomSlotSelection(byte?[,] slotsAndChances) {
        InputSimulator key = new InputSimulator();
        int VK_RIGHT_BUTTON = 0x02;
        short keyStatus = GetAsyncKeyState(VK_RIGHT_BUTTON);
        if ((keyStatus & 1) == 1) {
                switch(RandomSlotNumber(slotsAndChances)) {
                    case 1:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_1);
                        break;
                    case 2:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_2);
                        break;
                    case 3:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_3);
                        break;
                    case 4:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_4);
                        break;
                    case 5:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_5);
                        break;
                    case 6:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_6);
                        break;
                    case 7:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_7);
                        break;
                    case 8:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_8);
                        break;
                    case 9:
                        key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_9);
                        break;
            }
        }
    }
}
После первого же теста получилось, что моя программа... зацикливается(?) на моменте проверки нажатия клавиши R. Я пытался замедлить цикл, думая, что проверка не срабатывает из-за скорости работы кода, но ни каких результатов не последовало. Вопрос в том, почему не срабатывает проверка на нажатие клавиши? Я пробовал и зажимать, и тыкать пальцем на клавишу,но код буд-то останавливался. Я даже не знаю, как забить вопрос в поисковике. Подскажите, как можно сделать, что бы код начал реагировать на нажатие клавиши? Приложение должно работать в фоновом режиме, что бы выбирать случайный слот инвентаря по нажатию ПКМ(Правой Клавиши Мыши).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2022, 08:55
Ответы с готовыми решениями:

Не реагирует на нажатие клавиши
Привет ребят. Есть окно, которое имеет 2 поля. В поле 1 мы вводим число, затем нажимаем F6 и в поле 2 выводится наше число в бинарном виде....

Не реагирует вторая форма на нажатие клавиши
коллеги! Я хочу создать приложение,в котором есть два окна,в свою очередь состоящее каждое из двух кнопок. При нажатии одной кнопки на...

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

7
312 / 143 / 77
Регистрация: 23.08.2015
Сообщений: 455
16.07.2022, 14:36
C#
1
2
3
4
5
6
7
8
while(true)
{
int VK_R = 0x51;
short keyStatus = GetAsyncKeyState(VK_R);
Thread.Sleep(500); //не обращайте внимание на Thread, я его вписал, когда пытался понять, в чём ошибка
if ((keyStatus & 1) == 1) {
chooseARandomSlot = !chooseARandomSlot;
}
Бесконечный цикл из которого программа не выходит. Нет условия для прерывания while.
0
2 / 2 / 1
Регистрация: 15.07.2022
Сообщений: 37
16.07.2022, 15:14  [ТС]
Дело не совсем в этом. После if-а идёт ещё один if, а while ещё не закрыт. Он закрывается в 32 строке. Проверка на R нужна, что бы изменить значение переменной. В вашем сообщении 2 открытых фигурных скобки и только 1 закрытая, от if-а. И цикл не должен заканчиваться, он должен всё время работать, что бы я не запускал программу каждый раз, когда мне нужно в случайном порядке ставить блоки. Если while завершить, программа закончится.
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
16.07.2022, 18:54
Priz01, все смешалось, люди кони. не понятно зачем вам там GetAsyncKeyState
достаточно обычного Console.ReadKey();
C#
1
  short keyStatus = (Console.ReadKey().Key == ConsoleKey.R)?(short)1:(short)0;//GetAsyncKeyState((int)VK_R);
C#
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
//Рандомер слотов
using System.Runtime.InteropServices;
using WindowsInput;
class Program
{
    [DllImport("user32.dll")]
    static extern short GetAsyncKeyState(Int32 vKey);
    public static bool chooseARandomSlot = false;
 
    public static void Main()
    {
        //здесь начинаются проблемы
 
 
 
        byte?[,] slotsAndChances = SlotsAndChances();
        System.Console.WriteLine("Рандомер начал свою работу. Для активации нажмите R.");
        while (true)
        {
            WindowsInput.Native.VirtualKeyCode VK_R = WindowsInput.Native.VirtualKeyCode.VK_R;
            short keyStatus = GetAsyncKeyState((int)VK_R);
            Thread.Sleep(500);    //не обращайте внимание на Thread, я его вписал, когда пытался понять, в чём ошибка
            if ((keyStatus & 1) == 1)
            {
                chooseARandomSlot = !chooseARandomSlot;
 
            }
            if (!chooseARandomSlot)
            {
                System.Console.WriteLine("!!");    //тоже написал, когда разбирался, в чём ошибка
                Thread.Sleep(1500);
                continue;
            }
            System.Console.WriteLine("!");
            RandomSlotSelection(slotsAndChances);
            Console.ReadLine();    // пытался понять, в чём ошибка, и понял, что до этой части кода программа не доходит
        }
    }
    //здесь я ещё не проверял
 
 
 
    public static byte?[,] SlotsAndChances()
    {
        List<byte> slotNumber = new List<byte>();
        List<byte> chanceOfSlotLoss = new List<byte>();
        byte slot;
        byte chance;
        byte sumOfChances = 0;
        bool cnt = false;
        byte?[,] slotsAndChances = new byte?[9, 2];
        Console.WriteLine("Введите 100 для завершения ввода номеров слотов и их шансов выпадения. Введите 101 для очистки списков номеров слотов и шансов выпадения слотов. Нажмите R для активации Рандомера слотов.");
        for (byte i = 0; i < 9; i++)
        {
            System.Console.WriteLine("Укажите номер слота");
            slot = byte.Parse(Console.ReadLine());
            for (byte a = 0; a < slotNumber.Count; a++)
            {
                if (slot == slotNumber[a])
                {
                    System.Console.WriteLine("Вы уже вводили этот слот. Если вы хотите переписать список слотов и шансов их выпадения введите 101. Если вы хотите переписать последний слот введите 0");
                    byte answer = byte.Parse(Console.ReadLine());
                    if (answer == 0)
                    {
                        i--;
                        slotNumber.Remove(slot);
                        cnt = true;
                        break;
                    }
                    if (answer == 101)
                    {
                        slotNumber.Clear();
                        chanceOfSlotLoss.Clear();
                        i = 11;
                        System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
                    }
                }
            }
            if (cnt == true)
            {
                cnt = false;
                continue;
 
            }
            if (slot == 100)
            {
                i = 10;
                Console.WriteLine("Вы завершили ввод номеров слотов и шансов их выпадения");
            }
            if (slot == 101)
            {
                slotNumber.Clear();
                chanceOfSlotLoss.Clear();
                i = 11;
                System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
            }
            slotNumber.Add(slot);
            if (i == 11)
            {
                slotNumber.Remove(slot);
 
                break;
            }
            if (i == 10)
            {
                slotNumber.Remove(slot);
                break;
            }
            //шанс выпадения слота
            System.Console.WriteLine("Укажите шанс выпадения слота");
            chance = byte.Parse(Console.ReadLine());
            if (chance == 100)
            {
                i = 10;
                slotNumber.Remove(slot);
                Console.WriteLine("Вы завершили ввод номеров слотов и шансов их выпадения");
            }
            if (chance == 101)
            {
                slotNumber.Clear();
                chanceOfSlotLoss.Clear();
                i = 11;
                System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
            }
            chanceOfSlotLoss.Add(chance);
            if (i == 11)
            {
                slotNumber.Remove(slot);
                chanceOfSlotLoss.Remove(chance);
 
                break;
            }
            if (i == 10)
            {
                slotNumber.Remove(slot);
                chanceOfSlotLoss.Remove(chance);
                break;
            }
            sumOfChances += chanceOfSlotLoss[i];
            System.Console.WriteLine("Сумма шансов всех слотов сейчас равна " + sumOfChances + " %");
            if (sumOfChances == 100)
            {
                System.Console.WriteLine("Сумма шансов выпадения всех слотов стала 100 %. Ввод слотов и шансов их выпадения был завершён.");
                break;
            }
            if (sumOfChances > 100)
            {
                System.Console.WriteLine("Сумма всех шансов стала больше 100 %. Если вы хотите переписать список слотов и шансов их выпадения введите 101. Если вы хотите переписать последний слот и шанс его выпадения введите 0");
                byte answer = byte.Parse(Console.ReadLine());
                if (answer == 0)
                {
                    slotNumber.Remove(slot);
                    chanceOfSlotLoss.Remove(chance);
                    --i;
                    cnt = true;
                }
                if (answer == 101)
                {
                    slotNumber.Clear();
                    chanceOfSlotLoss.Clear();
                    System.Console.WriteLine("Вы завершили заполнение списка слотов и шансов выпадения слотов");
                    break;
                }
                if (cnt == true)
                {
                    cnt = false;
                    continue;
                }
            }
        }
        for (byte j = 0; j < slotNumber.Count; j++)
        {
            slotsAndChances[j, 0] = slotNumber[j];
            slotsAndChances[j, 1] = chanceOfSlotLoss[j];
        }
        return slotsAndChances;
 
    }
    public static byte? RandomSlotNumber(byte?[,] slotsAndChances)
    {
        Random randomIndex = new Random();
        List<byte?> randomSlot = new List<byte?>(100);
        for (byte j = 0; j < 9; j++)
        {
            if (slotsAndChances[j, 0] == null)
            {
                continue;
            }
            for (byte i = 0; i < slotsAndChances[j, 1]; i++)
            {
                int index = randomIndex.Next(0, 100);
                if (randomSlot[index] != null)
                {
                    randomSlot[index] = slotsAndChances[j, 0];
                }
                else
                {
                    --j;
                    continue;
                }
 
            }
        }
        return randomSlot[randomIndex.Next(0, 100)];
    }
    public static void RandomSlotSelection(byte?[,] slotsAndChances)
    {
        InputSimulator key = new InputSimulator();
        int VK_RIGHT_BUTTON = 0x02;
        short keyStatus = GetAsyncKeyState(VK_RIGHT_BUTTON);
        if ((keyStatus & 1) == 1)
        {
            switch (RandomSlotNumber(slotsAndChances))
            {
                case 1:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_1);
                    break;
                case 2:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_2);
                    break;
                case 3:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_3);
                    break;
                case 4:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_4);
                    break;
                case 5:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_5);
                    break;
                case 6:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_6);
                    break;
                case 7:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_7);
                    break;
                case 8:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_8);
                    break;
                case 9:
                    key.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_9);
                    break;
            }
        }
    }
}
Добавлено через 2 минуты
код клавиши у вас неверный код VK_R 82 а 0x51 это 81 что является VK_Q

Добавлено через 3 минуты
эта конструкция тоже сомнительная
C#
1
2
3
4
5
6
7
  if ((keyStatus & 1) == 1)
            {
                chooseARandomSlot = !chooseARandomSlot;
 
            }
            if (!chooseARandomSlot)
            {
ее проще переписать так
C#
1
2
3
4
  if ((keyStatus & 1) != 1)
            {
                continue; 
            }
0
2 / 2 / 1
Регистрация: 15.07.2022
Сообщений: 37
16.07.2022, 19:33  [ТС]
Нет, тут вы меня совсем не поняли. Приложение будет работать в фоновом режиме. Я хотел играть, и менять состояние переменной не отвлекаясь от игры. Возможно, ваш ответ тоже работает в фоне, но мой вариант меня пока устраивает. Если что-то случится, попробую ваш вариант, всё равно спасибо. (Кстати, я не знал, что через Console.ReadKey тоже можно было.) А за код клавиши спасибо, перепутал. И про if: я пытался исправить мою ошибку, подумал, может дело в if-е.

Добавлено через 16 минут
И ещё, сейчас проверил ваш вариант, он тоже не работает. (Я про Console.ReadKey) Всё равно программа не реагирует на нажатие.
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
16.07.2022, 20:15
Цитата Сообщение от Priz01 Посмотреть сообщение
(Я про Console.ReadKey) Всё равно программа не реагирует на нажатие.
console.readkey будет работать только если фокус на консоли. А так если вам нужно отлавливать клавишу в фоне, то используйте GetAsyncKeyState либо если и это не поможет то можно сделать хук.

Добавлено через 3 минуты
Я вам дал полное исправление во втором окне C# с полным кодом, он у меня отрабатывает и в фоне и тогда когда консоль в фокусе.
0
2 / 2 / 1
Регистрация: 15.07.2022
Сообщений: 37
17.07.2022, 20:23  [ТС]
За ответ во втором окне спасибо, но я уже решил проблему. Оказалось, что я каждый раз вводил не тот виртуальный код клавиши, и думал, что это с программой что-то не так. Сейчас исправил, всё работает. Всё равно спасибо. Можете на эту тему больше не отвечать потому, что проблема решилась сама собой.
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
17.07.2022, 22:03
Лучший ответ Сообщение было отмечено Priz01 как решение

Решение

Priz01, я вам об этом написал сразу же, похоже вы читали между строк.
если вы посмотрите внимательно на мой ответ с решением то там как раз таки подставляется правильный код клавиши.
C#
1
2
WindowsInput.Native.VirtualKeyCode VK_R = WindowsInput.Native.VirtualKeyCode.VK_R;
            short keyStatus = GetAsyncKeyState((int)VK_R);
Поэтому проблема не решилась сама собой.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2022, 22:03
Помогаю со студенческими работами здесь

OnKeyDown реагирует только на одно нажатие клавиши
Есть у меня процедура, которая при нажатии на стрелку двигает картинку типа picture в конкретную сторону, но если зажать две стрелки, к...

прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши.
написать программу, которая по нажатой клавише выводит ascii - код символа этой клавиши или scan - код самой клавиши. осуществите вывод в...

Расположить в рабочей области 3 окна, каждое из которых по своему реагирует на нажатие левой клавиши мыши
В рабочей области окна приложения рядом друг с другом расположить 3 временных окна, каждое из которых по своему реагирует на нажатие...

При нажатие на клавишу компьютер реагирует на это через 2-3 секунды
ЧТо делать у меня при нажатие на клавишу комп реагирует на это через 2-3 секунды. Помогите пожалуйста как это исправить!!!

При нажатие клавиши срабатывает определённый код, дополните мой код
Есть код bool space = false; // переменная отвечающая за просмотр, нажат ли пробел или нет if () { echo &lt;&lt; &quot;Вы нажали...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru