可能很简单看看 (但是也不一定):)

bingjiling 2003-02-16 04:20:21

1。我需要把程序在windows 2000 口令验证前,加载
2、我需要把程序重新启动,关闭 windows 2000
大哥们 有原代码吗
先谢谢了!!!!!!!
...全文
12 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Storm2008 2003-02-23
  • 打赏
  • 举报
回复
高手就是高手



学习
bingjiling 2003-02-23
  • 打赏
  • 举报
回复
谢谢 还有另外一个问题
hansion3406 2003-02-16
  • 打赏
  • 举报
回复
呵呵...
AdjustTokenPrivileges(hToken, False, mPriv, (4 + (12 * mPriv.PrivilegeCount)), mNewPriv, mBufferLength);
这一句是做什么的??
cgh1970 2003-02-16
  • 打赏
  • 举报
回复
up
Billy_Chen28 2003-02-16
  • 打赏
  • 举报
回复
开机启动:
function setAutoStart(flag: integer): boolean;
var reg:TRegistry;
begin
result:=true;
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
TRY
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true);
if flag=0 then//flag为0时取消自动启动
Reg.DeleteValue('软件标识');
else//flag为非0时设置自动启动
reg.WriteString('软件标识','"'+application.ExeName+'"')
except
result:=false;
end;
reg.CloseKey;
reg.Free;
end;

Billy_Chen28 2003-02-16
  • 打赏
  • 举报
回复
function My_ExitWindows(M_1Reboot_2Power: integer): Boolean; //重启(M:=1).关机(M:=2)
var
hToken: THANDLE;
hProc: THANDLE;
mLUID: TLargeInteger;
mPriv, mNewPriv: TOKEN_PRIVILEGES;
mBufferLength: DWord;
begin
Result:=false;
if not (M_1Reboot_2Power in [1, 2]) then exit;
hProc := GetCurrentProcess();
OpenProcessToken(hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken);
LookupPrivilegeValue('', 'SeShutdownPrivilege', mLUID);
mPriv.PrivilegeCount := 1;
mPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
mPriv.Privileges[0].Luid := mLUID;
AdjustTokenPrivileges(hToken, False, mPriv, (4 + (12 * mPriv.PrivilegeCount)), mNewPriv, mBufferLength);
GetLastError;
case M_1Reboot_2Power of
1: Result := ExitWindowsEx(EWX_FORCE+EWX_REBOOT,0);
2: Result := ExitWindowsEx(EWX_FORCE+EWX_POWEROFF, 0);
end;
end;

5,388

社区成员

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

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