请教各位使用GetIdeSerialNumber函数来获取硬盘序列号的朋友,我现在遇到的问题是:当我使用的不是XP管理员帐号的时候,就无法获得序列号!

解决方案 »

  1.   

    我有一个使用动态库获取硬盘序列号的代码
    据说 可以不需要管理员权限运行
    不过没测试过
    里面有VC的源码
    要的话留下邮箱地址
    好像处理不了Vista下的
      

  2.   

    試試看function SetPrivilege(privilegeName: string; enable: boolean): boolean;   
    var
      tpPrev, tp : TTokenPrivileges;   
      token : THandle;   
      dwRetLen : DWord;   
    begin   
      result :=   False;   
      OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,token);   
      tp.PrivilegeCount   :=   1;   
      if LookupPrivilegeValue(nil, pchar(privilegeName), tp.Privileges[0].LUID) then   
      begin   
        if   enable   then   
          tp.Privileges[0].Attributes   :=   SE_PRIVILEGE_ENABLED   
        else   
          tp.Privileges[0].Attributes   :=   0;   
        dwRetLen   :=   0;   
        result:= AdjustTokenPrivileges(token,False,tp,SizeOF(tpPrev),tpPrev,dwRetLen);   
      end;   
      CloseHandle(token);   
    end;   
    提升權限   if   SetPrivilege('SeSystemtimePrivilege',   true)   then  
        //Todo 
    相關權限字串參考 :http://msdn.microsoft.com/en-us/library/bb530716(VS.85).aspx