刚学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.这里面有许多我没接触到的函数,对于初学者我们是应该直接学习控件,还是先学好他的函数啊?
有时候疑问太多了,挺打击自信心的,希望高手能点拨一下,谢谢啦!
 

解决方案 »

  1.   


    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经常用的 常用的以后就慢慢懂了 我也不全记得 需要时翻书
     有时候疑问太多了{问题会越来越多的},挺打击自信心的{兴趣很关键},希望高手能点拨一下{我楼下均是},谢谢啦!{应该的 ^_^}