社区
Delphi
帖子详情
我要做一个程序,其中一些功能只允许 Windows 2000 的系统管理员才能运行,该怎么做?
hiflower
2003-07-16 01:19:33
我要做一个程序,其中一些功能只允许 Windows 2000 的系统管理员才能运行,该怎么做?
...全文
69
7
打赏
收藏
我要做一个程序,其中一些功能只允许 Windows 2000 的系统管理员才能运行,该怎么做?
我要做一个程序,其中一些功能只允许 Windows 2000 的系统管理员才能运行,该怎么做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hiflower
2003-07-17
打赏
举报
回复
问题解决,供大家参考:
const
SECURITY_BUILTIN_DOMAIN_RID = $20;
DOMAIN_ALIAS_RID_ADMINS = $220;
SECURITY_NT_AUTHORITY:TSIDIDENTIFIERAUTHORITY=(Value:(0,0,0,0,0,5));
cmmi
2003-07-16
打赏
举报
回复
note: 用户名为administrator的不一定为系统管理员!
hiflower
2003-07-16
打赏
举报
回复
to sz1008(Need For Speed) :
谢谢!
再请教:
SECURITY_NT_AUTHORITY, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS
这几个值如何定义呢?编译通不过
haoguozhong
2003-07-16
打赏
举报
回复
如何从注册表中检查当前用户是否是administrator呢?
lovelymelon
2003-07-16
打赏
举报
回复
在运行该程序时,从注册表种检测一下当前用户是不是administrator,如果是,用一个全局变量admin:boolean型记录为true,如果不是,记录为false,这样一些只有管理员执行的功能时,首先读取全局变量admin,为true,可以执行,为false,不能执行
mrtxc
2003-07-16
打赏
举报
回复
你在执行功能时检查一下系统用户名应该能行。
没试过,好象在哪儿见过。
sz1008
2003-07-16
打赏
举报
回复
笨而简单的方法是做两个版本
深而复杂的方法是在运用次功能前判断是否为administrator代码如下(from Kingron's超级猛料)
判断是否为超级用户 [ Win2000 ]
function IsAdmin: Boolean;
var
hAccessToken: THandle;
ptgGroups: PTokenGroups;
dwInfoBufferSize: DWORD;
psidAdministrators: PSID;
x: Integer;
bSuccess: BOOL;
begin
Result := False;
bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True,
hAccessToken);
if not bSuccess then
begin
if GetLastError = ERROR_NO_TOKEN then
bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY,
hAccessToken);
end;
if bSuccess then
begin
GetMem(ptgGroups, 1024);
bSuccess := GetTokenInformation(hAccessToken, TokenGroups,
ptgGroups, 1024, dwInfoBufferSize);
CloseHandle(hAccessToken);
if bSuccess then
begin
AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2,
SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
0, 0, 0, 0, 0, 0, psidAdministrators);
{$R-}
for x := 0 to ptgGroups.GroupCount - 1 do
if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then
begin
Result := True;
Break;
end;
{$R+}
FreeSid(psidAdministrators);
end;
FreeMem(ptgGroups);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if isAdmin then
begin
ShowMessage('Logged in as Administrator');
end;
计算机系统限制某个用户只
允许
,Win10系统如何设置某些用户只能
运行
指定应用
程序
...
为了更好地保护电脑安全,一位
windows
10系统 用户表示自己希望能够让某些使用电脑的朋友只能
运行
指定的应用
程序
,该如何进行设置呢?接下来,就随小编一起看看Win10系统设置某些用户只能
运行
指定应用
程序
的方法。具体如下:一、只
运行
指定的UWP应用二、只
运行
指定的
Windows
应用
程序
(传统的exe等桌面软件)方法一只能限制用户
运行
新式的应用商店应用,那么如果想让用户只能
运行
指定的传统的exe桌...
在
Windows
系统上降低 UAC 权限
运行
程序
(从管理员权限降权到普通用户权限)
在
Windows
系统中,管理员权限和非管理员权限
运行
的
程序
之间不能使用
Windows
提供的通信机制进行通信。对于部分文件夹(ProgramData),管理员权限创建的文件是不能以非管理员权限修改和删除的。 然而,
一个
进程
运行
之后启动的子进程,会继承当前进程的 UAC 权限;于是有时我们会有降权
运行
的需要。本文将介绍
Windows
系统上降权
运行
的几种方法。 本文的降权
运行
指的是: 有...
AD域
允许
普通用户打开需要管理员权限的软件
问题场景描述 公司的所有电脑都加了域,防止有些不安分的员工擅自下载及安装一些其他软件,导致电脑变卡或者中毒等,所以加了域后,安装任何软件都由IT来安装,但是这里涉及到
一个
问题,安装的时候需要管理员密码,但是某些软件(不在少数),不知为何在
运行
时竟然需要管理员权限,例如:美图秀秀。若该软件使用人员较多,又不能把管理员密码给他们,那只能由管理员手工输入,这样的话IT人员一天到晚就输入密码了。显然,这是不可取的,那么如何解决这个问题? 较麻烦的解决方案(最能满足要求):
Windows
ADK
Windows
和孩子斗智斗勇-如何限制只
运行
上网课的
程序
(
Windows
篇)
又一次的疫情来袭,孩子们又开始转向线上学习。疫情的零星扩散,看样子一下子也找不到根除的方法,孩子上网课估计以后会成为新常态。孩子上网课,家长也不可能一直监督陪着。面对网上的诸多诱惑,指望孩子一心上课,有点难。为了应对这种状况,作为
程序
员的我,不得不使出浑身的解数,采用各种技术手段进行限制。我首先想到的手段是通过
Windows
防火墙进行限制,只
允许
上网课的应用
程序
联网。但这个方法没奏效多久,孩子...
允许
应用更改计算机,解决电脑总弹出“是否
允许
程序
对计算机进行更改”
相信不少使用Win10系统的用户都会遇到这样
一个
问题,当我们在安装软件或打开应用
程序
时,总是会弹出“你要
允许
一下
程序
对此计算机进行更改吗”的提示窗口,每次
运行
程序
都要点击选择,很麻烦。在安装驱动
程序
和常用软件时选择“从不通知”,在正常使用电脑的情况下,调整到中等或最高级别的“始终通知”,确保安全。2、在打开的窗口中,依次展开到“计算机配置--
Windows
设置--安全设置--本地策略--安全选项”,在右侧找到“用户账户控制中:管理员批准模式中管理员的提升权限提示的行为”;我们可以进入本地组策略进行设置。
Delphi
5,388
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章