C++ RegSetValueEx返回值始终为5

5即ERROR_ACCESS_DENIED,意思是访问被拒绝。查了好久都没解决。


网上看到的说法是Win7权限不足。但是我这边的UAC早就设置为“从不”了。


后来想着有时候360每次会提示是否允许注册表修改,而我今天运行都没提示,就想到是否被360禁了,果然,只要把exe程序添加为信任程序,RegSetValueEx返回值就正常了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,你需要使用 Windows 应用程序开发工具,如 Visual Studio 来创建 C 语言程序。 接下来,你需要在代码中包含 Windows 头文件 "wlanapi.h",并调用 WlanOpenHandle 函数来打开 WLAN API 句柄。 然后,你可以使用 WlanEnumInterfaces 函数来获取系统中可用的 WLAN 接口列表。 接着,你可以遍历每个接口,并使用 WlanSetInterface function 设置 WLAN_INTF_OPCODE_HIDDEN_NETWORK 标志来隐藏该接口。 最后,你需要调用 WlanCloseHandle 函数来关闭 WLAN API 句柄。 以上是一种使用 C 语言隐藏 Windows WiFi 列表的方法。你还可以使用其他方法,如使用 Windows Management Instrumentation (WMI) 或者直接调用 Windows 内部函数。但是需要注意,有些方法可能需要你在代码中包含特定的头文件或者链接特定的库文件,或者在系统中具有特定的权限。 ### 回答2: 在C语言中,要隐藏Windows WiFi列表,可以通过修改Windows的注册表来实现。 首先,需要使用C语言中的Windows API函数来访问和修改注册表。可以使用RegOpenKeyEx函数打开注册表项,使用RegSetValueEx函数来修改注册表项的值,以及使用RegCloseKey函数关闭注册表项。 要隐藏WiFi列表,需要将下面这个注册表项的值设置为1: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Settings\Network\HideScanAssociations 在C语言中,可以使用以下代码片段来实现这个功能: #include <stdio.h> #include <windows.h> int main() { HKEY hKey; DWORD dwData = 1; // 打开注册表项 if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Settings\\Network", 0, KEY_SET_VALUE, &hKey) != ERROR_SUCCESS) { printf("Failed to open registry key\n"); return 1; } // 修改注册表项的值 if (RegSetValueEx(hKey, "HideScanAssociations", 0, REG_DWORD, (BYTE*)&dwData, sizeof(dwData)) != ERROR_SUCCESS) { printf("Failed to set registry value\n"); RegCloseKey(hKey); return 1; } // 关闭注册表项 RegCloseKey(hKey); printf("Successfully hid WiFi list\n"); return 0; } 上述代码片段可以将WiFi列表隐藏,使其不再显示。通过以上操作,我们可以在C语言中使用Windows API函数来隐藏Windows WiFi列表。 ### 回答3: 要隐藏Windows的WiFi列表可以使用C语言来编写一个小程序来实现。具体实现的步骤如下: 1. 使用C语言编写一个Windows应用程序。你可以使用C语言中的WinAPI来处理Windows的网络设置。 2. 使用WinAPI中的函数来获取WiFi列表。可以使用函数`WlanEnumInterfaces`来获取当前系统中的无线网络接口列表。该函数需要调用头文件`wlanapi.h`并且要链接`wlanapi.lib`库文件。 3. 遍历WiFi列表,找到所需隐藏的WiFi网络。使用函数`WlanGetNetworkBssList`来获取当前无线网络接口的BSS(基础服务集)列表,然后遍历列表中的每一个BSS,通过比较SSID(服务设备标识符)来找到需要隐藏的WiFi网络。 4. 使用`WlanSetProfile`函数将需要隐藏的WiFi网络的配置文件从可见状态改为隐藏状态。可以创建一个XML格式的配置文件,然后通过函数`WlanSetProfile`来修改该配置文件中的`<connectionType>`节点的值为`hidden`。最后使用函数`WlanConnect`来更新网络连接。 5. 将编写好的C代码进行编译和构建,生成可执行文件。 6. 运行生成的可执行文件,即可隐藏Windows的WiFi列表。 需要注意的是,编写这样一个功能的程序需要具备一定的C语言编程和Windows网络编程的知识,并且要了解WinAPI中相关的函数和数据结构。还需要确保程序有足够的权限来进行网络设置的修改。同时,对网络设置的修改也可能会造成一些不可预料的问题,建议在操作前备份重要数据以免造成损失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值