如标题所示,我正在寻找一种通过命令提示符/ powershell /批处理文件在Win10中启用/禁用内置Hotspot的方法。在GUI中,可以使用网络面板中的第三个按钮轻松完成此操作(请参见下图),但我想使其自动化。
我已经找到了数百篇有关如何通过netsh 创建新热点的教程,但是据我所知,这将创建另一个不同的热点。相反,我想使用已经配置的。还是Win10相同并且每次都会创建一个新的热点,但仅在内存之间设置?
提前致谢,
塞巴斯蒂安
编辑:
我玩了一下,发现了以下内容:
netsh wlan show drivers它说hosted network supprt: no。因此,对于“通用”解决方案,我将不得不更新驱动程序。Microsoft Wi-Fi Direct Virtual Adapter #x。一旦我停用HotSpot,适配器就会消失。因此,看来MS对内置热点使用的是与netsh变体完全不同的技术。这又使我想到了一个问题:如何通过脚本自动启用/禁用此热点?
在通过进程 ID 和窗口标题枚举窗口时,我有两种回调函数的实现。
第一个使用固定大小的字符数组作为缓冲区并且工作正常(据我所知)。
另一个使用 PChar 缓冲区并使用 GetMem 分配它,GetMem在离开 GetWindowHandleByPID 函数后,我在不同的内部出现异常。
我的第二个错误在哪里?
TEnumWindowsInfo = record
ProcessID: DWORD;
HWND: THandle;
TitleUp: string;
end;
function GetWindowHandleByPID(const hPID: THandle): THandle;
var
EI: TEnumWindowsInfo;
begin
EI.ProcessID := hPID;
EI.HWND := 0;
EI.TitleUp := 'BLA';
EnumWindows(@OnEnumWindowsProc, Integer(@EI));
Result := EI.HWND;
end;
function OnEnumWindowsProc(Wnd: DWORD; var EI: TEnumWindowsInfo): BOOL; stdcall;
var
pidMatch, titleMatch: BOOL;
buf: array [0..255] of Char;
titleAsUpper: string;
begin
// check PID: GetWindowThreadProcessID
pidMatch := true;
// check window title
GetWindowText(Wnd, …Run Code Online (Sandbox Code Playgroud)