Показать сообщение отдельно
  #2  
Старый 16.01.2021, 23:19
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
По умолчанию

Не мытьём, так - катаньем:
Код:
Procedure WinExec007(const ACmdLine: String; const ACmdShow: UINT = SW_SHOWNORMAL);
var
  SI: TStartupInfo;
  PI: TProcessInformation;
  CmdLine: String;
Begin
  Assert(ACmdLine <> '');

  CmdLine := ACmdLine;
  UniqueString(CmdLine);

  FillChar(SI, SizeOf(SI), 0);
  FillChar(PI, SizeOf(PI), 0);
  SI.cb := SizeOf(SI);
  SI.dwFlags := STARTF_USESHOWWINDOW;
  SI.wShowWindow := ACmdShow;

  SetLastError(ERROR_INVALID_PARAMETER);
  {$WARN SYMBOL_PLATFORM OFF}
  Win32Check(CreateProcess(nil, PChar(CmdLine), nil, nil, False, CREATE_DEFAULT_ERROR_MODE {$IFDEF UNICODE}or CREATE_UNICODE_ENVIRONMENT{$ENDIF}, nil, nil, SI, PI));
  {$WARN SYMBOL_PLATFORM ON}
  CloseHandle(PI.hThread);
  CloseHandle(PI.hProcess);
End;

Function CSharpWiFiConnect(AP_Name: string): boolean;
var // если AP_Name = '0', то ap_connector отключает ТД подключенную предыдущим вызовом
  tsName: TStringlist;             // ; NeedConnect: boolean
begin
  tsName:= TStringlist.Create;
  tsName.Add(AP_Name);
  tsName.SaveToFile(temp + '\ap_ToConnect.txt');
  tsName.Clear;
  WinExec007(temp + '\ap_connector.exe', SW_HIDE);//подключились к AP_Name
  while FileExists(temp + '\ap_ToConnect.txt') do Sleep(1);// ждём завершения ap_connector.exe
  Result:= not FileExists(temp + '\ap_ToConnect.txt');
  tsName.Free;
end;

procedure TForm1.btWifiConnectClick(Sender: TObject);
var
  Res : TResourceStream;

begin
  temp:=  GetEnvironmentVariable('TEMP');
  if not FileExists(temp + '\ap_connector.exe') then
  begin
    Res := TResourceStream.Create(hInstance, 'ap_connector', RT_RCDATA);
    Res.SavetoFile(temp + '\ap_connector.exe');
    Res.Free;
  end;
  if not FileExists(temp + '\SimpleWifi.dll') then
  begin
    Res := TResourceStream.Create(hInstance, 'SimpleWifi', RT_RCDATA);
    Res.SavetoFile(temp + '\SimpleWifi.dll');
    Res.Free;
  end;
  CSharpWiFiConnect('ESP-007.3');
end;
и... ву-аля : подключено(юзайте - кому надо), но .... через C#-вский костыль, а хотелось бы по науке - через нативный WLanAPI (точнее - немецкий клон: nduWLanAPI)
Вложения
Тип файла: zip ap_connector.zip (13.4 Кбайт, 15 просмотров)
Тип файла: zip SimpleWifi.zip (18.9 Кбайт, 14 просмотров)
Тип файла: zip nduWLanAPI.zip (33.0 Кбайт, 13 просмотров)
__________________
...И был сначала ZX-Spectrum, а потом его T(urbo)ASS(e)M(bler)... И только на 7-й день (когда Интел купила Пентковского [из КБ Бабаяна]) - появился Pentium-I... А в Союзе P-II был ещё в 1978 году (точнее: Эльбрус [мультискалярный проц] только не рапространялся спекулянтами, а управлял ракетами и спутниками)... А лет с пяток назад Эльбрус-II ПЁР (но никак не ГНАЛСЯ как Селероны) на F(recuency):= 400 GHz... А самое парадоксальное - презентация состоялась в Минске...
Ответить с цитированием