c - 我正在尝试使用 COM Moniker 抑制 UAC 提示
问题描述
Windows 资源管理器在尝试将文件复制到特定位置(例如system32
. 单击继续时,当当前 UAC 严格级别设置为倒数第二个值时,会在后台发生提升(仅在尝试对我的计算机进行更改时通知(默认))。
我已经看到其他程序(未进行数字签名)用于CoGetObject
创建提升IFileOperation.
我试图在我的应用程序中执行此操作,但 UAC 不断提示。是的,代码有效,但我想获得与第 3 方程序和 Windows 资源管理器在获取提升时获得的相同的静默结果IFileOperation.
这是我到目前为止的代码。它是 C 而不是 C++。
CoInitializeEx(0, COINIT_APARTMENTTHREADED);
BIND_OPTS3 ops = {0};
//Random sized buffer large enough to hold values, THIS IS ONLY FOR TESTING!!
WCHAR clsidName[210],
monikerName[500];
StringFromGUID2(&CLSID_FileOperation, clsidName, sizeof(clsidName) / sizeof(WCHAR));
StringCchPrintfW(monikerName, sizeof(monikerName) / sizeof(WCHAR), L"Elevation:Administrator!new:%s", clsidName);
ops.dwClassContext = CLSCTX_LOCAL_SERVER;
ops.cbStruct = sizeof(BIND_OPTS3);
IFileOperation ppv;
HRESULT hr = CoGetObject(monikerName, &ops, &IID_IFileOperation, &ppv);
解决方案
推荐阅读
- javascript - MYSQL 查询传递变量结果 0
- java - 我如何压缩这些返回语句或一起避免 checkstyle 错误?
- variables - 无法根据 Ansible 中的条件设置事实变量
- sql - 使用子查询比较同一张表上的日期
- r - 识别数据框变量中缺少哪个自然数并填写
- java - 当内容超过 141 个字符时,VARCHAR 列安静地中断 Hibernate
- javascript - 更改数组内对象的大小写标题
- python - Python Pandas DataFrame:按带有字符串时间戳列表的时间戳列过滤
- material-ui - 的定位
在 Material-ui 下 - visual-studio-code - 如何从vscode中搜索的字符串列表中转到第一次或最后一次出现?