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

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里用管理员权限运行一条指令的更多相关文章

  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. vs2013-tfs-疑问之版本控制器路径有双引号解决办法

    问题描述: 最近项目:“****”展示交易平台 ,所以版本控制器路径为: 导致生成解决方案提示:路径有问题 解决办法: 1.直接在版本控制器重命名是不支持的,需要安装:  Visual Studio ...

  2. Smallest Bounding Rectangle - uva10173

    Smallest Bounding Rectangle Given the Cartesian coordinates of n(>0)2-dimensional points, write a ...

  3. (7) 深入了解Java Class文件格式(六)

    转载:http://blog.csdn.net/zhangjg_blog/article/details/21888943 经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, ...

  4. [问题2014S03] 解答

    [问题2014S03] 解答  设 \(A\) 的 \(n\) 个特征值分别为 \(\lambda_1,\lambda_2,\cdots,\lambda_n\), 由条件知它们都是不等于零的实数. 根 ...

  5. 关于sifari兼容性的一个问题

    输入框 一个很基础的控件 结果出现了兼容性问题 在chrome ie android上页面正常 结果在Safari和IOS系统里面输入框无法输入, 点击后边框有高亮效果但是无法输入文本,问题代码如下: ...

  6. mysql 增删改查基本语句

    增: insert insert into 表名(字段1,字段2,字段3......字段N) values(值1,值2,值3): 如果不申明插入那些字段,则默认所有字段. 在插入时注意,往哪个表增加, ...

  7. IE的条件注释

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![ ...

  8. HDU 5795 A Simple Nim(简单Nim)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  9. idea 工程添加svn关联

    1.想启用idea的SVN插件还需要在idea配置一下(Ctrl + Alt + S),如下图所示: 2.接下来启用idea的版本控制插件(这里当然是启用Subversion了),打开“VCS”菜单项 ...

  10. JS_call_APP native 与 html的交互

    1.***** 特点:下个版本的交互准备使用这个(http://www.knowsky.com/884428.html) https://github.com/lifei321/JS-OC http: ...