转自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. jQuery 选择器 (基础恶补之二)

    返回 CSS 属性 如需返回指定的 CSS 属性的值,请使用如下语法: css("propertyname"); 下面的例子将返回首个匹配元素的 background-color ...

  2. YTU 3025: 创建二叉树

    原文链接:https://www.dreamwings.cn/ytu3025/2628.html 3025: 创建二叉树 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决: 3 ...

  3. Intellij IDEA debug介绍

    先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试. IDE下方出现Debug视图,红色的箭头指 ...

  4. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  5. Visual Studio的Web Performance Test提取规则详解(3)

    总结 Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互.Web Performance T ...

  6. CSS3的chapter3

    CSS的常用样式分为几大类: 字体样式(font,color, text-decoration ,text-shadow) 元素样式(width,height,margin,padding,opaci ...

  7. Quality assessment and quality control of NGS data

    http://www.molecularevolution.org/resources/activities/QC_of_NGS_data_activity_new table of contents ...

  8. js原生实现淡入淡出

         转自http://kb.cnblogs.com/page/90854/ 参数说明: fadeIn()与fadeOut()均有三个参数,第一个是事件, 必填; 第二个是淡入淡出速度, 正整数, ...

  9. Apache—DBUtils框架

    1.所需要jar包 commons-collections-2.1.1.jarmchange-commons-java-0.2.11.jarmysql-connector-java-5.1.18-bi ...

  10. win7文件夹图标中多了一把小锁打不开文件夹怎么办?

    win7文件夹图标中多了一把小锁打不开文件夹怎么办?解决办法一:右击目录→取得管理员权限!该方法适用于win7旗舰版.解决办法二:右击目录→属性→安全→高级→选择everyone→更改权限→勾上完全访 ...