Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программа - роутер, раздающая wi-fi с ноута - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Является ли адаптер контейнера контейнером http://www.cyberforum.ru/cpp/thread1785920.html
75%, но некоторые вопросы вызывают недоверие. Например вопрос про стандартные контейнеры (нужно выбрать стандартные контейнеры из списка), один из вариантов std::queue, вот и думай - то ли автор...
C++ Ищу описание Pocketsphinx Можете дать хорошее описание ( туториал ) по pocketsphinx. Просто у меня весьма туго с английским http://www.cyberforum.ru/cpp/thread1784787.html
Multimap find the same key and sum up values C++
Доброе утро Хотел уточнить , потому что знаю, что можно так сделать, но как не знаю if (multimap.find(currentNode) == multimap.end()) { ...
На каком языке написан Explorer.exe? C++
На каком языке написан explorer.exe? *не на русском
C++ Реальная задача для реального проекта для желающих покодить http://www.cyberforum.ru/cpp/thread1782931.html
Привет:) Попросили сделать парсер сайта по-дружески, но у меня реально времени на него нет. Если кому-то интересно, могу двигать в нужном направлении и может, при желании, могу пинать за плохой...
C++ Матрица перехода между двумя системами координат в 2D Есть 2 системы координат в 2D пространстве. Есть координаты 2 точек в этих системах координат (как я понимаю, необходимо как раз 2 точки). Нужно найти матрицу перехода (X, Y, fi) между этими... подробнее

Показать сообщение отдельно
Cortas
0 / 0 / 0
Регистрация: 14.03.2016
Сообщений: 13
Завершенные тесты: 2

Программа - роутер, раздающая wi-fi с ноута - C++

26.07.2016, 22:36. Просмотров 235. Ответов 1
Метки (Все метки)

ПРЕДИСЛОВИЕ

Здравствуйте! Есть задача написать простенькую программа которая раздает wi-fi с ноута с помощью команды nesth или чего-нибудь другого, если оно вообще есть. Я уже писал такую программку, но только на pascal.
Для тех кому интересно

Довольно примитивная, со скудным функционалом, однако функцию свою выполняет.
Pascal
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
uses crt,sysutils,dos,mouse;
const nf='WiFiCFG.bat';
 
var x1,y1,x2,y2,i:integer;
    sim:string[13];
    bt:text;
    buf,NNS,data,start,stop,s:string;
    f:longint;
    e:TMouseEvent;
    wlan,show:boolean;
 
procedure start_wlan;
  begin
  for i:=18 to 28 do begin GotoXY(1,i); clreol; end; GotoXY(1,18);
  getdir(0,s); delete(s,4,length(s));
  chdir(s); f:=filecreate(nf); fileclose(f);
  assign(bt,nf);
  rewrite(bt);
  writeln(bt,start);
  close(bt);
  exec(s+'\'+nf,'');
  DeleteFile(nf);
  end;
 
procedure stop_wlan;
  begin
  for i:=18 to 28 do begin GotoXY(1,i); clreol; end; GotoXY(1,18);
  getdir(0,s); delete(s,4,length(s));
  chdir(s); f:=filecreate(nf); fileclose(f);
  assign(bt,nf);
  rewrite(bt);
  writeln(bt,stop);
  close(bt);
  exec(s+'\'+nf,'');
  DeleteFile(nf);
  end;
procedure rec(x1,y1,x2,y2:integer; style:char);
  var j:integer;
  begin
  if style='b' then j:=7
  else j:=1;
  GotoXY(x1,y1); write(sim[j+2]);
  GotoXY(x2,y1); write(sim[j+3]);
  GotoXY(x1,y2); write(sim[j+4]);
  GotoXY(x2,y2); write(sim[j+5]);
  for i:=x1+1 to x2-1 do begin GotoXY(i,y1); write(sim[j+1]); GotoXY(i,y2); write(sim[j+1]); end;
  for i:=y1+1 to y2-1 do begin GotoXY(x1,i); write(sim[j]); GotoXY(x2,i); write(sim[j]); end;
  end;
 
function InBoxClick(x1,y1,x2,y2:integer; click:char):boolean;
  var button:word;
  begin
  Case click of
  'l': button:=MouseLeftButton;
  'r': button:=MouseRightButton;
  'm': button:=MouseMiddleButton;
  end;
  if(e.buttons=button) and (e.action=MouseActionDown) and (e.x+1>=x1) and (e.x+1<=x2) and (e.y+1>=y1) and (e.y+1<=y2) then
    InBoxClick:=true
  else
    InBoxClick:=false;
  end;
 
function PointClick(x,y:integer; click:char):boolean;
  var button:word;
  begin
  Case click of
  'l': button:=MouseLeftButton;
  'r': button:=MouseRightButton;
  'm': button:=MouseMiddleButton;
  end;
  if(e.buttons=button) and (e.action=MouseActionDown) and (e.x+1=x) and (e.y+1=y) then
    PointClick:=true
  else
    PointClick:=false;
  end;
 
procedure AcceptChanges;
  begin
  for i:=18 to 28 do begin GotoXY(1,i); clreol; end; GotoXY(1,18);
  getdir(0,s); delete(s,4,length(s));
  chdir(s); f:=filecreate(nf); fileclose(f);
  assign(bt,nf);
  rewrite(bt);
  writeln(bt,data);
  close(bt);
  exec(s+'\'+nf,'');
  DeleteFile(nf);
  end;
 
procedure ChangeName;
  var outs:boolean;
  begin
  donemouse;
  GotoXY(2,2); textcolor(12); write('  Enter new name  ');
  outs:=false;
  textcolor(8);
  GotoXY(3,5); write('                ');
  repeat
    GotoXY(3,5); readln(NNS);
    for i:=1 to length(NNS) do
      if NNS[i]=' ' then begin
        GotoXY(3,5); write('WRONG NAME!'); delay(1000);
        GotoXY(3,5); write('                ');
        outs:=false; break;
      end else
        outs:=true;
  until outs;
  i:=0;
  repeat i:=i+1; until (data[i]=' ') and (data[i+1]='k');
  buf:=copy(data,i,length(data)); insert(buf,NNS,length(NNS)+1); i:=0;
  repeat i:=i+1; until (data[i]='d') and (data[i+1]='='); i:=i+2;
  delete(data,i,length(data)); insert(NNS,data,i);
  AcceptChanges;
  GotoXY(2,2); textcolor(12); write('   Name changed   '); textcolor(2);
  delay(1000); GotoXY(2,2); write('                  ');
  initmouse;
  end;
 
procedure SHPassword;
  var j:integer;
  begin
    textcolor(8); GotoXY(3,9);
    j:=0;
    repeat j:=j+1; until (data[j]='y') and (data[j+1]='='); j:=j+2;
    if show then begin
      write(data[j..length(data)]);
      GotoXY(19,9);
      write('ш');
      show:=false;
    end else begin
      for j:=j to length(data) do write(sim[13]);
      GotoXY(19,9);
      write('~');
      show:=true;
    end;
    textcolor(2);
  end;
 
procedure ChangePassword;
  var i:integer;
      outs:boolean;
  begin
  i:=0;
  outs:=false;
  donemouse;
  GotoXY(2,2); textcolor(12); write('Enter new password');
  if show then begin
    GotoXY(3,9); SHPassword; end;
  GotoXY(3,9); write('                ');
  textcolor(8);
  repeat
  GotoXY(3,9); readln(NNS);
  if length(NNS)<8 then begin
    GotoXY(3,9); write('7> SIMVOLS!     '); delay(1000);
    GotoXY(3,9); write('                ');
    end;
    for i:=1 to length(NNS) do
      if NNS[i]=' ' then begin
        GotoXY(3,9); write('WRONG PASSWORD!'); delay(1000);
        GotoXY(3,9); write('                ');
        outs:=false; break;
      end else
        outs:=true;
  until (length(NNS)>8) and outs;
  repeat i:=i+1; until (data[i]='y') and (data[i+1]='='); i:=i+2;
  delete(data,i,length(data)); insert(NNS,data,i);
  AcceptChanges;
  GotoXY(2,2); textcolor(12); write('Password chenged  '); textcolor(2);
  delay(1000); GotoXY(2,2); write('                  ');
  initmouse;
  end;
 
procedure SwitchWlan;
  begin
  GotoXY(8,13);
  if wlan then begin
    textcolor(8); write('Start'); textcolor(2);
    GotoXY(3,1); write('OFF'); stop_wlan; wlan:=false; end
  else begin
    textcolor(8); write('Stop '); textcolor(2);
    GotoXY(3,1); write('ON',sim[8]); start_wlan; wlan:=true; end;
  end;
 
begin
clrscr;
cursoroff;
initmouse; showmouse;
textcolor(2);
data:='start netsh wlan set hostednetwork mode=allow ssid=Asus_EeePC key=barguzin2017';
start:='netsh wlan start hostednetwork'; stop:='netsh wlan stop hostednetwork';
sim:='іДЪїАЩєНЙ»Ијщ';
show:=false;
x1:=1; x2:=20;
y1:=1; y2:=16;
rec(x1,y1,x2,y2,'b'); GotoXY(17,1); write('[ю]'); x1:=x1+1; x2:=x2-1;
rec(x1,4,x2,6,'n'); textcolor(8); GotoXY(3,5); write(data[52..62]); textcolor(2);
GotoXY((x2 div 2)-length('name')+1,4); write('Name');
rec(x1,8,x2,10,'n'); SHPassword; GotoXY(5,8); write('Password');
rec(x1,12,x2,14,'n'); textcolor(8); GotoXY(8,13); write('Start'); textcolor(2);
repeat
donemouse; initmouse; showmouse;
GetMouseEvent(e);
if InBoxClick(x1,4,x2,6,'l') then
  ChangeName
else if PointClick(19,9,'l') then
  SHPassword
else if InBoxClick(x1,8,x2,10,'l') then
  ChangePassword
else if InBoxClick(x1,12,x2,14,'l') then
  SwitchWlan
else if PointClick(18,y1,'l') then begin
    GotoXY(18,1); write('');
    repeat GetMouseEvent(e);  until e.action=MouseActionUp;
    GotoXY(18,1); write('ю');
    if (e.x=17) and (e.y=0) then break;
  end;
until PointClick(18,y1,'l');  end.

Пробовал написать такую же только с большим функционалом уже на с++. Но столкнулся с некоторыми проблемами при написании в консоли. Например при запуске сети программа запускает сеть и все, потом она просто зависает. Решил, что в консоли делать её бессмысленно, поэтому решил иcпользовать WinApi.

ВОПРОС
1. Как можно реализовать запуск/остановку сети? (в cmd nesth wlan start/stop hostednetwork)
2. Как вывести/записать в переменную количество подключенных пользователей? (в cmd netsh wlan show hostednetwork)
3. Как менять ssid и key?
4. Возможно ли это вообще реализовать на С++?

ПОСЛЕСЛОВИЕ
У меня есть некоторые идею насчет этого. Например запускать консоль, которая будет менять параметры сети или запускать её, в маленько окошке за приделом экрана при нажатии кнопки. Но вот как можно записать количество пользователей...


P.S. Я не в коем случае не прошу писать за меня данную программу, а лишь помочь разобраться в данных вопросах.
P.P.S. Заранее всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru