Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 20.03.2018
Сообщений: 1
1

Управление с помощью клавиш клавиатуры

20.03.2018, 13:39. Показов 1466. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые знатоки.

Пишу на сишарпе на адруинку. У меня на данный момент управление через кнопки на браузере сделаны. Теперь мне надо что бы эти кнопки через клавиатуру вводились. Не могли бы вы дать совет. Я только учусь.

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
#include <SPI.h>
  #include <Ethernet.h>
 
  byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
  
  IPAddress ip(192,168,1, 150);
 
  EthernetServer server(80); 
     
  String webClickRequest;
         
  void setup(){
    
     pinMode(4, OUTPUT); 
     pinMode(5, OUTPUT); 
     pinMode(6, OUTPUT); 
     pinMode(7, OUTPUT); 
     
 
     Serial.begin(9600);
     while (!Serial) {
       ; 
     }
     
      
     Ethernet.begin(mac, ip);
     server.begin();
     Serial.print("server is at ");
     Serial.println(Ethernet.localIP());
   }
   
    void loop(){
 
      EthernetClient client = server.available();
      if (client) {
        while (client.connected()) {
          if (client.available()) {
            char c = client.read();
     
    
            if (webClickRequest.length() < 100) {
     
       
              webClickRequest += c;
 
            }
     
     
            if (c == '\n') {
     
             
              client.println("HTTP/1.1 200 OK"); 
              client.println("Content-Type: text/html");
              client.println();
              client.println("<HTML>");
              client.println("<HEAD>");
              client.println("<TITLE>Control Panel</TITLE>");
              client.println("<STYLE>");
              client.println("body{margin:50px 0px; padding:0px; text-align:center;}");
              client.println("h1{text-align: center; font-family:"Trebuchet MS",Arial, Helvetica, sans-serif; font-size:24px;}");
              client.println("a{text-decoration:none; width:75px; height:50px; border-color:black; font-family:"Trebuchet MS",Arial, Helvetica, sans-serif; padding:6px; background-color:#aaaaaa; text-align:center; border-radius:10px 10px 10px; font-size:24px;}");
              client.println("a:link {color:white;}");
              client.println("a:visited {color:white;}");
              client.println("a:hover {color:red;}");
              client.println("a:active {color:white;}");
              client.println("</STYLE>");
              client.println("</HEAD>");
              client.println("<BODY>");
              client.println("<H1>Control Panel</H1>");
              client.println("<br />");
              client.println("<br />");        
              client.println("<a href="/?left"">LEFT</a>");
              client.println(" ");
              client.println("<a href="/?forward"">FORWARD</a>");  
              client.println(" ");      
              client.println("<a href="/?right"">RIGHT</a>");
              client.println("<br />");
              client.println("<br />");
              client.println("<br />");            
              client.println("<a href="/?backleft"">BACK LEFT</a>");
              client.println(" ");
              client.println("<a href="/?back"">BACK</a>");
              client.println(" ");  
              client.println("<a href="/?backright"">BACK RIGHT</a>");
              client.println("</BODY>");
              client.println("</HTML>");
     
               
              delay(1);
              client.stop();
     
            
            if(webClickRequest.indexOf("?left") > 0){
                  right();
                  forward();
                  delay(1000);
                  brake();
            }
 
            else if(webClickRequest.indexOf("?forward") >0){
                forward();
                delay(1000);
                brake();
            }
            
            else if(webClickRequest.indexOf("?right") >0){
                left();
                forward();
                delay(1000);
                brake();
            }
            
            else if(webClickRequest.indexOf("?backleft") >0){
                right();
                reverse();
                delay(1000);
                brake();
            }
            
            else if(webClickRequest.indexOf("?back") >0){
                reverse();
                delay(1000);
                brake();
            }
            
            else if(webClickRequest.indexOf("?backright") >0){
                left();
                reverse();
                delay(1000);
                brake();
            }
            
            
 
            webClickRequest="";
     
            }
          }
        }
      }
    }
 
  
  void reverse(){ 
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH); 
  }
 
  void forward(){
    digitalWrite(4, HIGH);  
    digitalWrite(5, LOW);   
  }
 
  void right(){
    digitalWrite(6, HIGH);  
    digitalWrite(7, LOW);  
  }
 
  void left(){
    digitalWrite(6, LOW);   
    digitalWrite(7, HIGH);  
  }
 
  void brake(){
    digitalWrite(4, LOW);    
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);   
    digitalWrite(7, LOW); 
  }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2018, 13:39
Ответы с готовыми решениями:

Отправить определённую комбинацию клавиш с помощью SendKeys
Прочитал что можно использовать для обработки клавиш SendKeys. Как сделать такую комбинацию? ...

Перехват нажатий клавиш клавиатуры (hook)
Вот пример кода перехвата и последующего блокирования комбинации клавиш Alt+Tab namespace...

richtextbox программное нажатие клавиш клавиатуры
как в RichtextBox программно нажать клавишу &quot;Right&quot; клавиатуры?

Имитация нажатий клавиатуры и клавиш в webBrowser
Как имитировать нажатия в елементе webBroswe нажатие клавиш клавиатуры и мыши?

5
Администратор
Эксперт .NET
17558 / 13780 / 5299
Регистрация: 17.03.2014
Сообщений: 28,258
Записей в блоге: 1
20.03.2018, 15:13 2
Абыл123, это C (или C++), а не C#
0
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 160
Записей в блоге: 1
20.03.2018, 21:22 3
Нужно в среде Ардуино писать а не c#
0
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
20.03.2018, 21:34 4
Возможно, имеется ввиду, что нужно получить доступ к Arduino из C# приложения, а C++ код представлен для понимания того, что делает микроконтроллер.

Не по теме:

Лучше вместо Arduino ESP8266 использовать или даже ESP32, так как ресурсов у них гораздо больше (особенно у последней) и вполне себе можно реализовать простенький WEB-сервер.

0
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 160
Записей в блоге: 1
20.03.2018, 21:35 5
Тогда работа через СОМ порт
0
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
20.03.2018, 21:42 6
Я так понимаю, что на Arduino WEB-сервер развёрнут и в ответ на команды он выполняет определённые действия. Команды отправляются http-запросом. Отправить его можно как через браузер, так и программой на C#. Был определённый опыт, только на ESP8266.
0
20.03.2018, 21:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2018, 21:42
Помогаю со студенческими работами здесь

Хук клавиатуры перехват сочетаний клавиш
Задача такая: пользователь нажимает некую клавишу и запускает программу. Программа определяет, что...

метод для перехвата клавиш клавиатуры
Здравствуйте,имею метод для перехвата клавиш клавиатуры,но не знаю куда его вставить и как его...

Консольное приложение. Состояние клавиш клавиатуры
Возможно ли в консольном приложении на C# обеспечить контроль состояния клавиатурных клавиш? ...

Отслеживаем движение мыши и нажатие клавиш клавиатуры
Задача такая: если пользователь в течении пяти минут не трогал клавиатуру и мышь (не нажимал кнопки...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru