刚学delphi 想请教下这些代码是什么意思,能帮我在代码的后面加上释么?3QU
var
VerInfo: TOSVersionInfo;
hToken: THANDLE;
tkp: TOKEN_PRIVILEGES;
Nothing: Cardinal;
begin
VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
GetVersionEx(VerInfo);
if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
hToken);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, Nothing);
end;
ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);
end;
想请教的是:
1.var后申明的是变量,那verinfo:tosversioninfo 中的tosversioninfo是什么意思啊?
2.为什么变量verinfo后可以接个点操作符呢如:verinfo.dwosversioninfosize
3.这里面有许多我没接触到的函数,对于初学者我们是应该直接学习控件,还是先学好他的函数啊?
有时候疑问太多了,挺打击自信心的,希望高手能点拨一下,谢谢啦!
var
VerInfo: TOSVersionInfo;
hToken: THANDLE;
tkp: TOKEN_PRIVILEGES;
Nothing: Cardinal;
begin
VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
GetVersionEx(VerInfo);
if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
hToken);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, Nothing);
end;
ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);
end;
想请教的是:
1.var后申明的是变量,那verinfo:tosversioninfo 中的tosversioninfo是什么意思啊?
2.为什么变量verinfo后可以接个点操作符呢如:verinfo.dwosversioninfosize
3.这里面有许多我没接触到的函数,对于初学者我们是应该直接学习控件,还是先学好他的函数啊?
有时候疑问太多了,挺打击自信心的,希望高手能点拨一下,谢谢啦!
解决方案 »
- 200 !!! 求rave打印Tchart解決方案
- 求一个TDDBGrid这样的控件
- 如何屏蔽windows按键
- 怎样使得FORM的大小适应屏幕的分辨率?
- 关于MessageBox的问题
- 关于数据库中记录号的问题
- 对初学DELPHI的人来说关键是什么!
- 在做webservice时,最简单的对数据库插入和删除方法是什么?
- 用Foxpro或Access实现数据库的话,编程时一定要安装Foxpro/Access吗?如果程序完成后作成安装程序给用户,用户也需要安装Foxpro/Access吗?
- 我想认识一些delphi高手
- 请高手进群做副管
- 一对多语音聊天室 ACM Tudpserver 只要愿意回复的,我在这里都很感激!
var
VerInfo: TOSVersionInfo; {记录类型:大小/版本/标识 的信息就放着里面了}
hToken: THANDLE; //句柄了
tkp: TOKEN_PRIVILEGES; {记录类型}
Nothing: Cardinal; {知道哦^_^}
begin
VerInfo.dwOSVersionInfoSize{结构大小}:=SizeOf(VerInfo){获取他本身大小};
GetVersionEx(VerInfo); {API函数得到记录信息}
if VerInfo.dwPlatformId{操作标识}= VER_PLATFORM_WIN32_NT{版本_平台_Win32_NT} then {NT及以上系统}
begin
OpenProcessToken{打开令牌}(GetCurrentProcess{也就是自己的进程句柄},
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY{操作类型}, hToken{指针类型好象});
//得取特权的属性
LookupPrivilegeValue(nil, 'SeShutdownPrivilege'{权限名称}, tkp.Privileges[0].Luid{得到Luid局部唯一值});
tkp.PrivilegeCount := 1; {数组的个数}
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; {设置下权限属性}
AdjustTokenPrivileges(hToken{句柄}, FALSE, tkp{修改到这个权限}, 0, nil, Nothing);
end;
{调整完权限了就开始重要操作了}
ExitWindowsEx{又是API函数}(EWX_FORCE{强制}+EWX_SHUTDOWN{关机}+EWX_POWEROFF{电源关}, 0);
end;
想请教的是:
1.verinfo:tosversioninfo 一种记录变量
2.设定大小为GetVersionEx做准备
3.API经常用的 常用的以后就慢慢懂了 我也不全记得 需要时翻书
有时候疑问太多了{问题会越来越多的},挺打击自信心的{兴趣很关键},希望高手能点拨一下{我楼下均是},谢谢啦!{应该的 ^_^}