转自csdn的yangw150zhao4zhong1

转自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);

  1. ShellExecute(
  2.   hWnd: HWND;        {指定父窗口句柄}
  3.   Operation: PChar;  {指定动作, 譬如: openprint}
  4.   FileName: PChar;  {指定要打开的文件或程序}
  5.   Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
  6.   Directory: PChar;  {缺省目录}
  7.   ShowCmd: Integer  {打开选项}
  8. ): HINST;            {执行成功会返回应用程序句柄; 如果这个值 <= 32, 表示执行错误}
  9.  
  10. //返回值可能的错误有:
  11.                       =   {内存不足}
  12. ERROR_FILE_NOT_FOUND  = ;  {文件名错误}
  13. ERROR_PATH_NOT_FOUND  = ;  {路径名错误}
  14. ERROR_BAD_FORMAT      = ; {EXE 文件无效}
  15. SE_ERR_SHARE          = ; {发生共享错误}
  16. SE_ERR_ASSOCINCOMPLETE = ; {文件名不完全或无效}
  17. SE_ERR_DDETIMEOUT      = ; {超时}
  18. SE_ERR_DDEFAIL        = ; {DDE 事务失败}
  19. SE_ERR_DDEBUSY        = ; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
  20. SE_ERR_NOASSOC        = ; {没有相关联的应用程序}
  21.  
  22. //ShowCmd 参数可选值:
  23. SW_HIDE            = ;  {隐藏}
  24. SW_SHOWNORMAL      = ;  {用最近的大小和位置显示, 激活}
  25. SW_NORMAL          = ;  {同 SW_SHOWNORMAL}
  26. SW_SHOWMINIMIZED  = ;  {最小化, 激活}
  27. SW_SHOWMAXIMIZED  = ;  {最大化, 激活}
  28. SW_MAXIMIZE        = ;  {同 SW_SHOWMAXIMIZED}
  29. SW_SHOWNOACTIVATE  = ;  {用最近的大小和位置显示, 不激活}
  30. SW_SHOW            = ;  {同 SW_SHOWNORMAL}
  31. SW_MINIMIZE        = ;  {最小化, 不激活}
  32. SW_SHOWMINNOACTIVE = ;  {同 SW_MINIMIZE}
  33. SW_SHOWNA          = ;  {同 SW_SHOWNOACTIVATE}
  34. SW_RESTORE        = ;  {同 SW_SHOWNORMAL}
  35. SW_SHOWDEFAULT    = ; {同 SW_SHOWNORMAL}
  36. SW_MAX            = ; {同 SW_SHOWNORMAL}
  37.  

1、如果命令中的路径包含空格,要把路径去掉头尾用双引号包含起来。

  1.  

例:strPath = “”D:\\\"te st\\\"test.exe;(用“\”进行字符转义)

  1.  
  1.  

2、用变量传命令的时候,要在命令字符开始加上"/c",不然命令不会执行。

  1.  

例:strCommand = "/c " + "date";

  1.  

ShellExecute(NULL, "open", "cmd", strCommand, NULL, SW_SHOW);

  1.  
  1.  

3、用SW_HIDE使cmd窗口静默执行

  1.  

例:ShellExecute(NULL, "open", "cmd", strCommand, NULL, SW_HIDE);

  1.  
  1.  

4、命令行执行结果可以使用">"来保存到文件。

  1.  

例:ShellExecute(NULL, "open", "cmd", "/c date >D:\\test.txt", NULL, SW_HIDE);

  1.  
  1.  

5、通过对比输出文件进行结果分析。

  1.  
  1.  

6、strCommand不支持直接使用..\,要使用相对路径可以用tempdir来实现。

  1.  

例:假设text.txt在test.exe的上一层目录中,ShellExecute(NULL, "open", "cmd", "/c D:\\test\\test.exe "tempdir\\..\\..\\text.txt >D:\\test.txt", NULL, SW_HIDE);

  1.  

如何在程序里模拟在cmd里用管理员权限运行一条指令的更多相关文章

  1. win8中 cmd直接以管理员权限运行

    一.组合键 WIN+X   二.锁定到任务栏,方便以后快速启动     三.控制面板->控制中心     四.更改用户账户控制设置--调到最低 好了,点击任务栏的命令提示符

  2. C#启用管理员权限运行程序

    方法一:关闭程序重新请求打开 static class Program { [STAThread] static void Main() { Application.EnableVisualStyle ...

  3. C#程序以管理员权限运行

    原文:C#程序以管理员权限运行 C#程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员 ...

  4. C#程序以管理员权限运行【我采用了第二种,比较好用】

    在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表 ...

  5. 【转】 C#程序以管理员权限运行

    C#程序以管理员权限运行在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无 ...

  6. C#程序以管理员权限运行(ZT)

    本文转载:http://www.cnblogs.com/Interkey/p/RunAsAdmin.html 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) ...

  7. C#程序 -- 以管理员权限运行

    阅读目录 一.判断程序是否以管理员身份运行 C#程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户 ...

  8. 管理员权限运行-C#程序

    C#程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也 ...

  9. bat代码中判断 bat是否是以管理员权限运行,以及自动以管理员权限运行CMD BAT

    · bat 代码中判断bat是否是以管理员权限运行,以及自动以管理员权限运行CMD BAT 一.判断bat是否是以管理员权限运行 @echo off net.exe session >NUL & ...

随机推荐

  1. CentOS7安装Apache2.4+PHP5.6

    linux系统CentOS7 先下载Apache需要依赖的软件 1.APR 下载地址http://apr.apache.org/download.cgi wget下载路径http://mirror.b ...

  2. zigbee学习之路(十):串口(接收)

    一.前言 上次我们学习了串口的发送,今天我们要学习串口的接收,要实现的功能是接收电脑发来的数据,控制LED 灯闪烁,而且将收到的数据发回给电脑显示出来.而且要采用不占用cpu资源的中断. 二原理与分析 ...

  3. linux mysql导入导出

    linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 ...

  4. CSS 定位

    一.CSS 定位和浮动   它们代替了多年来的表格布局.   定位的思想很简单,相对于正常位置.相对于父元素.另一个元素甚至是浏览器窗口的位置.   浮动在 CSS1 中被首次提出.浮动不完全是定位, ...

  5. UVA10561 Treblecross 组合游戏/SG定理

    Treblecross is a two player gamewhere the goal is to get three X in a row on a one-dimensional board ...

  6. Key Figure、Exception Aggreagion、Non-Cumulative KeyFigure

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. PHP-----类与对象,成员方法,成员属性,构造方法,析构方法

    php里面的类-----class XX{},通过类的定义,可以使用调用类里面的成员属性和成员方法. 对象---一个类就是一个对象,一个对象可以有多个属性,一个类可以有多个成员方法. 构造方法:一个类 ...

  8. ubuntu15.04 安装 pylab失败,先记下来,漫漫看

    pydo@planpls:/var/python/web2py$ pip install pylab Downloading/unpacking pylab Downloading pylab-0.1 ...

  9. MFC编程入门之十一(对话框:模态对话框及其弹出过程)

    加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有了些解了,有个好的开始对于以后的学习大有裨益.趁热打铁,这一节讲讲什么是对话框和非模态对话框,以及模态对话框怎样弹出. 一.模态对话框和非 ...

  10. bridge

    1 意图:将抽象部分与实现部分分离,使得它们都可以独立地变化 2 别名:Handle/Body 3 动机:客户在创建窗口时应该不涉及到具体实现部分.仅仅是窗口的实现部分依赖于应用运行的平台. 客户代码 ...