NT下如何实现关机?

biner 2000-05-24 04:41:00
在NT下关闭计算机,先要从进程获得关机权限,我的代码如下,但是老不成功,不知为什么,请高手指点,谢谢!
procedure TForm1.Button1Click(Sender: TObject);
var
hToken:THandle;
tkp,tkp1:TOKEN_PRIVILEGES;
a:DWORD;
begin
OpenProcessToken(GetCurrentProcess,
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);

LookupPrivilegeValue(NiL,'SeShutdownPrivilege',tkp.Privileges[0].Luid);
// LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME,tkp.Privileges[0].Luid);

tkp.PrivilegeCount:= 1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, tkp, 0, tkp1,a);

InitiateSystemShutdown(nil,nil,0,TRUE,TRUE);
// exitwindowsex(EWX_SHUTDOWN,0);这样也不行

end;
在VC中有枚举类型SE_SHUTDOWN_NAME,DELPHI中怎么没有?
...全文
136 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeah 2000-05-29
  • 打赏
  • 举报
回复
我没在NT SERVER上试过,但我想如果在SERVER上,没有权限肯定是不行,你是自己的机器还单位网络上的机器?我上面的实际已经是完整代码了,使用BUTTON1的CLICK事件调用即可。
biner 2000-05-26
  • 打赏
  • 举报
回复
yeah,你的代码和我的代码其实是一样的,你的我也试了,还是无法关机,不知是什么原因,我的也是D4/NT4/SP3,我的是NTServer。
你能不能将完整代码发过来,是不是在某些事件里无法关机?
Benni 2000-05-25
  • 打赏
  • 举报
回复
据我所知InitiateSystemShutDown()只有administator才能用。
yeah 2000-05-25
  • 打赏
  • 举报
回复
给你一个过程(REBOOT标志说明重启还是关机)
已在D4/NT4/SP3下通过
procedure ShutDownNT(ReBoot:Boolean);
const
ADJUST_PRIV = TOKEN_QUERY or TOKEN_ADJUST_PRIVILEGES;
SHTDWN_PRIV = 'SeShutdownPrivilege';
PRIV_SIZE = SizeOf(TTokenPrivileges);
var
Len: DWORD;
TokenPriv, Dummy: TTokenPrivileges;
Token: THandle;
begin
OpenProcessToken(GetCurrentProcess, ADJUST_PRIV, Token);
LookupPrivilegeValue(nil, SHTDWN_PRIV,TokenPriv.Privileges[0].Luid);
TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
TokenPriv.PrivilegeCount := 1;
AdjustTokenPrivileges(Token, false, TokenPriv, PRIV_SIZE,Dummy, Len);
InitiateSystemShutDown(nil,nil,0,True,Reboot);
end;
最新Radmin 3.4完美破解版 隐藏任务栏图标 ] Radmin (Remote Administrator)是一款屡获殊荣的远程控制软件,它将远程控制、外包服务组件、以及网络监控结合到一个系统里,提供目前为止最快速、强健而安全的工具包。   它有以下特点:   1.运行速度快。   2.Radmin支持被控端以服务的方式运行、支持多个连接和IP 过滤(即允许特定的IP控制远程机器)、个性化的档互传、远程关机、支持高分辨率模式、基于Windows NT的安全支持及密码保护以及提供日志文件支持等。   3.在安全性方面,Radmin支持Windows NT/2000用户级安全特性,您可以将远程控制的权限授予特定的用户或者用户组,Radmin将以加密的模式工作,所有的数据(包括屏幕影像、鼠标和键盘的移动)都使用128位强加密算法加密; 服务器端会将所有操作写进日志文件,以便于事后查询,服务器端有IP过滤表,对IP过滤表以外的控制请求将不予回应。   4.Radmin 目前支持TCP/IP协议,应用十分广泛。   安全性亮点:   高级 256-位 AES 强加密用于所有数据流。   可以使用 Windows Security 或 Radmin Security。   Windows 安全性支持对特定用户使用不同的权限,或对主域、可信域和活动目录的用户组使用不同的权限。 支持自动使用登录用户凭证和 Kerberos 验证。   Radmin 安全性支持对添加到 Radmin Server 访问列表的用户使用不同的权限。 Radmin 用户验证使用新的基于 Diffie-Hellman 的密钥交换,密钥长度 2048 位。   IP Filter 仅允许从特定 IP 地址和网络访问 Radmin Server。   添加到日志文件的 DNS 名称和用户名信息。   智能防护密码猜测。   安全性已经构建到了 Radmin 的核心:   Radmin 服务器有两个安全子系统。 因此您可以设置 Radmin 使用 Windows 的内嵌安全性或 Radmin 安全性。 Radmin 支持 Windows Vista/XP/2003/2000(32位和64位)用户级安全性,带有 Kerberos 和 NTLMv2 支持,以限制来自本地计算机、主域、可信域或活动目录的用户对特定用户或用户组的远程访问。 安全设置接口与 Windows 标准统一。   使用 Radmin 安全性时,您可以为 Radmin 用户设置不同的权限。 对于用户验证和会话密钥,使用了 Diffie-Hellman 交换 2048 位密钥的设置。   对于数据流加密,Radmin 使用了带 256 密钥的 AES。 Radmin 为每个会话生成独特的 256 位密钥,从而实现了无与伦比的保护。   使用的算法是最新的加密方法,密钥长度也远远高于行业标准。   所有数据,包括屏幕图像、光标移动和键盘信号都始终加密。 对于 Radmin 2.x 和 3.x 是无法取消加密的。   Radmin 将其所有操作和事件记录到日志文件中。   Radmin 有个 IP 过滤器表,允许您限制对特定 IP 地址和网络的远程访问。   Radmin 有内置的代码测试防御机制,保护程序的代码不受改变。   Radmin 用大随机码序(random bit sequence)为每个连接生成特有的私钥,以实现无与伦比的保护。 访问密码以加密的形式保存,不会以任何形式在计算机之间传输,防止第三方截取或生成密码。   Radmin 防止错误的服务器配置。 Radmin Server 不允许空密码。   Radmin Server 积极地保护其设置,它们保存在系统注册表里。 只有管理员权限的用户才能访问这个注册表区段。   智能防护密码猜测。 这项保护包含的功能有密码反猜测安全延时、密码猜测次数过多禁止 IP 地址等。   Radmin Server 在 Windows Vista/XP/2003/2000 (32 位和 64 位) 上作为一个服务启动,而不作为应用程序启动,增强了安全性。   您可以在您的计算机屏幕上的一个窗口或全窗口内看见远程计算机的画面。   您所有的搜索活动和 新闻都直接的传输到您的远程计算机,您可以工作在远程计算机上就跟在自己的计算机上一样正确的执行。根据我们的测试及使用者的回报,Radmin在速度及可以工作的数量上胜过其他的远程控制软件。   这些远程的计算机可以放置在因特网或您的局域网络内的任何一个地方,有了Radmin您不必需要一个快速的网络联机来在远程的计算机上工作,即使您只能利用modem来联机,您也可以每秒能够到达屏幕更新5-10次的合理速度。如果利用局域网络联机的话,您可以每秒能够到达屏幕更新100-500次的实时速度。它可以上下调整来挽救带宽。   安全和可靠性   Radmin 是容易使用和非常安全的,数据以128位加密传送的,这个软件是以TCP/IP协议为基底,在广域及局域网络内有最多最广泛的协定。这个意思是您可以控制世界上任何一台的计算机。当在"Full control"的模式下时,您可以让远程的计算机做您想要的事情;档案的来回传送,甚至关机。 那是,假如您是这个系统的管理者或是已经授权给sysadmin这些允许。 Radmin 从开始就设计的非常安全。   它极为可靠,工作了许多个月也不会有例外。   容易使用   Radmin有一个重要的优势就是有一个简单的接口,它没有一些无用的功能特色来膨胀这个软件,让它难以使用、学习和变的更慢。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧