首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用shell执行以管理员身份运行cmd

使用shell执行以管理员身份运行cmd
EN

Stack Overflow用户
提问于 2013-03-10 13:14:19
回答 2查看 58.3K关注 0票数 21

我需要运行cmd上的按钮点击作为管理员。它起作用了。但我需要以管理员身份运行它。这是怎么做的?

 ShellExecute(Handle, 'open', 'c:\Windows\system32\cmd.exe', nil, nil, SW_SHOWNORMAL)
EN

回答 2

Stack Overflow用户

发布于 2013-03-11 02:55:29

open谓词替换为runas,如下所示。无论如何,尽量避免路径硬编码:

uses
  ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'runas', 'cmd.exe', nil, nil, SW_SHOWNORMAL);
end;

还可以通过将ElevationRequired属性设置为True来向按钮添加盾牌图标。

票数 24
EN

Stack Overflow用户

发布于 2016-05-03 11:17:24

uses ShellApi, ...;

function RunAsAdmin(const Handle: Hwnd; const Path, Params: string): Boolean;
var
  sei: TShellExecuteInfoA;
begin
  FillChar(sei, SizeOf(sei), 0);
  sei.cbSize := SizeOf(sei);
  sei.Wnd := Handle;
  sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
  sei.lpVerb := 'runas';
  sei.lpFile := PAnsiChar(Path);
  sei.lpParameters := PAnsiChar(Params);
  sei.nShow := SW_SHOWNORMAL;
  Result := ShellExecuteExA(@sei);
end;

//示例

RunAsAdmin(Handle, 'c:\Windows\system32\cmd.exe', '');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15319158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档