ShellExecute(NULL, _T("Open"), _T("C:\\test\\a.pdf"), NULL, NULL, SW_SHOWMAXIMIZED);
在win7下,程序运行时会触发UAC控制,有没有方法降低程序所需的权限?
解决方案 »
- 单文档,对话框之间的关系
- VC++里的ODBC+ACCESS编程里绑定数据出现了问题,等待解决中……
- 在对话框上根据设置最多显示36个窗口在实现中遇到问题,请指点
- 请问如何取的对话框的句柄?在线等
- ACTIVEX在IE关闭时释放的问题,大家帮忙啊,另yang79tao()请进
- 请问如何设定Edit中一行显示字符的个数呢?万分紧急
- 关于HBRUSH CSatcctlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ??
- 关于打印的问题
- 怎样使我的列表视图是full row select的样式?。。。。。
- 请问如何知道别人的软件是用什么开发工具编的?
- 什么是运行库
- CListCtrl 属性问题
SHELLEXECUTEINFO结构体的lpVerb = _T("run as");
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>方法二
ShellExecuteEx
lpVerb = L"runas";
lpFile = L"notepad.exe"方法三
用Microsoft Application Compatibility Toolkit 将你的程序添加到UAC白名单
把你a.pdf移动到非系统分区看看还会不会出发UAC控制
SHELLEXECUTEINFO ShellInfo;
memset(&ShellInfo, 0, sizeof(ShellInfo));
ShellInfo.cbSize = sizeof(ShellInfo);
ShellInfo.hwnd = NULL;
ShellInfo.lpVerb = _T("run as");
ShellInfo.lpFile = _T("c:\\test\\a.pdf");
ShellInfo.nShow = SW_SHOWNORMAL;
ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx(&ShellInfo);
一样,也还是需要提权
你们是南辕北辙
是运行ShellExecute(NULL, _T("Open"), _T("C:\\test\\a.pdf"), NULL, NULL, SW_SHOWMAXIMIZED);时才有uac还是双击你的程序就出来?
程序启动时就有提示了,只有把ShellExecute注释掉,就没问题了
那个对话框中是你的程序名还是pdf阅读器的
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
之类的去掉,或者选择不使用manifest