如何在程序里模拟在cmd里用管理员权限运行一条指令
转自csdn的yangw150,zhao4zhong1
转自http://www.cnblogs.com/del/archive/2008/02/13/1068229.html
http://blog.csdn.net/go121015603/article/details/41870707
win7下,我想执行net user administrator /active:yes这样一条指令,用system()函数执行时返回错误,返回错误是“发生系统错误 5 拒绝访问”,原来是没有管理员权限,用手动右键点击cmd.exe,选择使用管理员权限运行就ok了,但在代码里如何能模拟管理员权限的cmd来运行一条指令呢?
ShellExecuteA(0,"runas","cmd","","",1);
这样是以管理员权限打开了cmd窗口
ShellExecute(0,"runas", LPCSTR("cmd.exe"),LPCSTR("/c net user administrator /active:yes"),"",SW_HIDE);
ShellExecute(
hWnd: HWND; {指定父窗口句柄}
Operation: PChar; {指定动作, 譬如: open、print}
FileName: PChar; {指定要打开的文件或程序}
Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
Directory: PChar; {缺省目录}
ShowCmd: Integer {打开选项}
): HINST; {执行成功会返回应用程序句柄; 如果这个值 <= 32, 表示执行错误} //返回值可能的错误有:
= {内存不足}
ERROR_FILE_NOT_FOUND = ; {文件名错误}
ERROR_PATH_NOT_FOUND = ; {路径名错误}
ERROR_BAD_FORMAT = ; {EXE 文件无效}
SE_ERR_SHARE = ; {发生共享错误}
SE_ERR_ASSOCINCOMPLETE = ; {文件名不完全或无效}
SE_ERR_DDETIMEOUT = ; {超时}
SE_ERR_DDEFAIL = ; {DDE 事务失败}
SE_ERR_DDEBUSY = ; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
SE_ERR_NOASSOC = ; {没有相关联的应用程序} //ShowCmd 参数可选值:
SW_HIDE = ; {隐藏}
SW_SHOWNORMAL = ; {用最近的大小和位置显示, 激活}
SW_NORMAL = ; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = ; {最小化, 激活}
SW_SHOWMAXIMIZED = ; {最大化, 激活}
SW_MAXIMIZE = ; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = ; {用最近的大小和位置显示, 不激活}
SW_SHOW = ; {同 SW_SHOWNORMAL}
SW_MINIMIZE = ; {最小化, 不激活}
SW_SHOWMINNOACTIVE = ; {同 SW_MINIMIZE}
SW_SHOWNA = ; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = ; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = ; {同 SW_SHOWNORMAL}
SW_MAX = ; {同 SW_SHOWNORMAL}
1、如果命令中的路径包含空格,要把路径去掉头尾用双引号包含起来。
例:strPath = “”D:\\\"te st\\\"test.exe;(用“\”进行字符转义)
2、用变量传命令的时候,要在命令字符开始加上"/c",不然命令不会执行。
例:strCommand = "/c " + "date";
ShellExecute(NULL, "open", "cmd", strCommand, NULL, SW_SHOW);
3、用SW_HIDE使cmd窗口静默执行
例:ShellExecute(NULL, "open", "cmd", strCommand, NULL, SW_HIDE);
4、命令行执行结果可以使用">"来保存到文件。
例:ShellExecute(NULL, "open", "cmd", "/c date >D:\\test.txt", NULL, SW_HIDE);
5、通过对比输出文件进行结果分析。
6、strCommand不支持直接使用..\,要使用相对路径可以用tempdir来实现。
例:假设text.txt在test.exe的上一层目录中,ShellExecute(NULL, "open", "cmd", "/c D:\\test\\test.exe "tempdir\\..\\..\\text.txt >D:\\test.txt", NULL, SW_HIDE);
如何在程序里模拟在cmd里用管理员权限运行一条指令的更多相关文章
- win8中 cmd直接以管理员权限运行
一.组合键 WIN+X 二.锁定到任务栏,方便以后快速启动 三.控制面板->控制中心 四.更改用户账户控制设置--调到最低 好了,点击任务栏的命令提示符
- C#启用管理员权限运行程序
方法一:关闭程序重新请求打开 static class Program { [STAThread] static void Main() { Application.EnableVisualStyle ...
- C#程序以管理员权限运行
原文:C#程序以管理员权限运行 C#程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员 ...
- C#程序以管理员权限运行【我采用了第二种,比较好用】
在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表 ...
- 【转】 C#程序以管理员权限运行
C#程序以管理员权限运行在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无 ...
- C#程序以管理员权限运行(ZT)
本文转载:http://www.cnblogs.com/Interkey/p/RunAsAdmin.html 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) ...
- C#程序 -- 以管理员权限运行
阅读目录 一.判断程序是否以管理员身份运行 C#程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户 ...
- 管理员权限运行-C#程序
C#程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也 ...
- bat代码中判断 bat是否是以管理员权限运行,以及自动以管理员权限运行CMD BAT
· bat 代码中判断bat是否是以管理员权限运行,以及自动以管理员权限运行CMD BAT 一.判断bat是否是以管理员权限运行 @echo off net.exe session >NUL & ...
随机推荐
- win10查看连接过的wifi密码
cmd窗口 运行 “netsh wlan show profiles name="linasd" key=clear”
- vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境
转载于:http://blog.csdn.net/lbc2100/article/details/48293911 本文为参考网上的动态库的方式,进行静态库的实现,在此对动态库的作者表示感谢. 第一步 ...
- POJ 2876 Cantoring Along
Description The Cantor set was discovered by Georg Cantor. It is one of the simpler fractals. It is ...
- hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系
hibernate环境配置:导包.... 单向n-1:单向 n-1 关联只需从 n 的一端可以访问 1 的一端 <many-to-one> 元素来映射组成关系: name: 设定待映射的持 ...
- 初学画布canvas的chapter2
文本 1.字体属性 context.font = [css font property] ——使用CSS规范,语法跟CSS字体速记符号一致 ——line-height无效,并永远忽略 Context. ...
- ABAP编辑器SE38、ABAP工作台SE80 切换
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- html5 drag and drop
注:链接.图片默认是draggable的. mousemove在整个拖放的过程中不会被触发. dragStart设置: e.dataTransfer.effectAllowed = "mov ...
- React的Transaction浅析
1.两个示例 示例1 let SonClass = React.createClass({ render: function(){ console.log("render", th ...
- ExceptionExtensions
public static class ExceptionExtensions { public static IEnumerable<Exception> GetAllException ...
- jQuery核心之 $
参考jQuery官网API文档 $ 和 $() 的区别很重要: 1.$(document).ready() 和 $(document).load() 的 区别: 前者等到DOM准备好了之后就会 ...