首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么在程序里模拟在cmd里用管理员权限运行一条指令

2014-01-05 
如何在程序里模拟在cmd里用管理员权限运行一条指令?win7下,我想执行net user administrator /active:yes这

如何在程序里模拟在cmd里用管理员权限运行一条指令?
win7下,我想执行net user administrator /active:yes这样一条指令,用system()函数执行时返回错误,返回错误是“发生系统错误 5 拒绝访问”,原来是没有管理员权限,用手动右键点击cmd.exe,选择使用管理员权限运行就ok了,但在代码里如何能模拟管理员权限的cmd来运行一条指令呢?
[解决办法]
 runas /noprofile /user:mymachine\administrator cmd
用runas试下,具体使用如何看下帮助。
[解决办法]
google搜索:
shellexecuteex  runas
[解决办法]
ShellExecuteA(0,"runas","cmd /c net user administrator /active:yes","","",1); 
试试看。

CreateProcessAsUser
The CreateProcessAsUser function creates a new process and its primary thread. The new process then executes a specified executable file. The CreateProcessAsUser function is similar to the CreateProcess function, except that the new process runs in the security context of the user represented by the hToken parameter. By default, the new process is non-interactive, that is, it runs on a desktop that is not visible and cannot receive user input. Also, by default, the new process inherits the environment of the calling process, rather than the environment associated with the specified user.

BOOL CreateProcessAsUser(
  HANDLE hToken,         // handle to a token representing the logged-on user
  LPCTSTR lpApplicationName,  // pointer to name of executable module
  LPTSTR lpCommandLine,       // pointer to command line string
  LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes
  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // thread security attributes
  BOOL bInheritHandles,         // whether new process inherits handles
  DWORD dwCreationFlags,        // creation flags
  LPVOID lpEnvironment,         // pointer to new environment block
  LPCTSTR lpCurrentDirectory,   // pointer to current directory name
  LPSTARTUPINFO lpStartupInfo,  // pointer to STARTUPINFO
  LPPROCESS_INFORMATION lpProcessInformation  // pointer to PROCESS_INFORMATION
);
 

热点排行