16.01.2021, 23:19
|
Новичок
|
|
Регистрация: 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)
__________________
...И был сначала ZX-Spectrum, а потом его T(urbo)ASS(e)M(bler)... И только на 7-й день (когда Интел купила Пентковского [из КБ Бабаяна]) - появился Pentium-I... А в Союзе P-II был ещё в 1978 году (точнее: Эльбрус [мультискалярный проц] только не рапространялся спекулянтами, а управлял ракетами и спутниками)... А лет с пяток назад Эльбрус-II ПЁР (но никак не ГНАЛСЯ как Селероны) на F(recuency):= 400 GHz... А самое парадоксальное - презентация состоялась в Минске...
|