为什么system("C:\Windows\System32\bcdedit.exe /set {current} safeboot network");运行了没反应,安全引导下的网络单选框还是没勾上,我用cmd运行bcdedit.exe /set {current} safeboot network就没问题,我的程序权限是管理员级别。
别的比如system("start www.baidu.com");有反应,打开了百度。
c++实现屏幕安全模式控制失败
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- GISer Liu 2024-03-06 17:09关注
该回答引用自GPT-3.5,由博主GISer Liu编写:
根据您的描述,您想要通过C程序来实现将当前系统设置为安全模式并启用网络,但是使用
system
函数调用``` bcdedit.exe解决这个问题的一种思路是确保在C程序中正确调用``` bcdedit.exe ```命令。您提到在命令行中直接执行``` bcdedit.exe /set {current} safeboot network ```命令是有效的,因此问题可能出现在程序调用``` system ```函数时。 以下是一种可能的解决方案: 1. **使用绝对路径调用``` bcdedit.exe ```命令** :确保在C程序中调用``` bcdedit.exe ```时使用完整的绝对路径。虽然在命令行中直接运行命令时,系统可以正确解析``` bcdedit.exe ```的位置,但在使用``` system ```函数调用时,可能需要提供绝对路径以确保准确性。 cCopy code
system("C:\Windows\System32\bcdedit.exe /set {current} safeboot network");
2. **检查返回值** :调用``` system ```函数后,检查其返回值以确定命令是否成功执行。您可以使用``` system ```函数的返回值来检查命令是否成功执行。返回值为0表示成功执行,其他值表示执行失败。 cCopy code
int result = system("C:\Windows\System32\bcdedit.exe /set {current} safeboot network");
if (result == 0) {
printf("命令执行成功。\n");
} else {
printf("命令执行失败。\n");
}3. **使用``` ShellExecute ```函数** :``` ShellExecute ```函数可以以管理员权限执行命令。这可能比使用``` system ```函数更可靠。以下是一个使用``` ShellExecute ```函数的示例: cCopy code
#include <Windows.h>
#include <Shellapi.h>
int main() {
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "runas";
ShExecInfo.lpFile = "C:\Windows\System32\bcdedit.exe";
ShExecInfo.lpParameters = "/set {current} safeboot network";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
CloseHandle(ShExecInfo.hProcess);
return 0;
}请注意,在使用
ShellExecute函数时,需要添加
Shellapi.h头文件,并链接
Shell32.lib库。 通过以上方法,您应该能够在C程序中成功调用
bcdedit.exe```命令,将系统设置为安全模式并启用网络。如果仍然遇到问题,请确保您的程序具有足够的权限来执行该命令,并确保防病毒软件或安全策略不会阻止该操作。
如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订
解决 无用评论 打赏 举报
悬赏问题
- ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
- ¥15 大智慧怎么编写一个选股程序
- ¥100 python 调用 cgps 命令获取 实时位置信息
- ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
- ¥15 C语言使用vscode编码错误
- ¥15 用KSV5转成本时,如何不生成那笔中间凭证
- ¥20 ensp怎么配置让PC1和PC2通讯上
- ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
- ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
- ¥15 请各位帮我看看是哪里出了问题