方法1、代码实现
http://zhidao.baidu.com/question/260744247.html
http://msdn.microsoft.com/zh-cn/library/bb384691.aspx
方法3、在资源文件中添加一个自己的manifest文件
方法1、代码实现
3.67 icePub_runByAdmin
l 函数原型:
int WINAPI icePub_runByAdmin(char *strAppPathName,char *strSuParam)
输入:strAppPathName 带路径应用程序文件名;为空则默认本身应用程序
strSuParam 以管理员权限启动程序的命令行参数;为空则默认为"su "
输出:
l VC连接Lib方式声明
__declspec(dllexport)
int WINAPI icePub_runByAdmin(char *strAppPathName,char *strSuParam);
l 动态调用例程
VC sample 代码:
int runByAdmin(void)
{
int retCode=-1;
typedef int (WINAPI ICEPUB_RUNBYADMIN)(char *strAppPathName,char *strSuParam);
ICEPUB_RUNBYADMIN *icePub_runByAdmin = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
icePub_runByAdmin = (ICEPUB_RUNBYADMIN *)GetProcAddress(hDLLDrv, "icePub_runByAdmin");
if(icePub_runByAdmin)
retCode=icePub_runByAdmin("","");
if(hDLLDrv)
FreeLibrary(hDLLDrv);
if(retCode == 0)
exit(0);
if(retCode == -1)
AfxMessageBox("以管理员启动失败,请手动启动");
return retCode;
}
/MANIFESTUAC(将 UAC 信息嵌入到清单中)
指定是否将用户帐户控制 (UAC) 信息嵌入到程序清单中。
如果您在命令行上指定多个 /MANIFESTUAC 选项,则最后输入的选项优先级最高。
/MANIFESTUAC:level 的选项包括:
-
asInvoker:应用程序将使用与启动它的进程相同的权限运行。 可通过选择“以管理员身份运行”将应用程序提升为更高权限。
-
highestAvailable:应用程序将使用可能的最高权限级别运行。 如果启动该应用程序的用户为管理员组的一个成员,则此选项与 requireAdministrator 相同。 如果可用的最高权限级别高于打开进程的级别,则系统将提示提供凭据。
-
requireAdministrator:应用程序将使用管理员权限运行。 启动该应用程序的用户必须是管理员组的一个成员。 如果打开进程未使用管理权限运行,则系统将提示提供凭据。
您可以通过使用 /MANIFESTUAC:fragment 选项在一个步骤中指定 level 和 uiAccess 值。 代码片段的格式必须是:
在 Visual Studio 开发环境中设置此链接器选项
-
打开该项目的“属性页”对话框。 有关详细信息,请参见如何:打开项目属性页。
-
展开“配置属性”节点。
-
展开“链接器”节点。
-
选择“清单文件”属性页。
-
修改“启用用户帐户控制(UAC)”、“UAC 执行级别”和“UAC 绕过 UI 保护”属性。
以编程方式设置此链接器选项
方法3、
在MinGW或VS 2005 SP1环境下创建一个要求UAC权限的程序。
mybatis-plus提供支持ActiveRecord模式
mybatis-plus通用Service
mybatis-plus返回查询总记录数
Mybatis-Plus查询返回Map类型数据
Mybatis-Plus条件构造器condition动态判断条件
Mybatis-Plus条件构造器select方法返回指定字段
mybatis-plus条件构造器UpdateWrapper实例
mybatis-plus条件构造器QueryWrapper实例
这玩意比ThreadLocal叼多了,吓得why哥赶紧分享出来。