to cobi(我是小新)
人家说得写vxd,是吗?怎样写?
最好能给我个例子

解决方案 »

  1.   

    希望对你游泳 
     一、 用GetDriveType函数获取磁盘信息 
      Lbl_DriveType:Tlabel;
      DriveType:WORD; //定义驱动器类型变量
      DriveType:=GetDriveType(RootPathName); //获得RootPathName所对应的磁盘驱动器信息
      case DriveType of
      DRIVE_REMOVABLE:Lbl_DriveType.Caption:= '软盘驱动器';
      DRIVE_FIXED : Lbl_DriveType.Caption:= '硬盘驱动器';
      DRIVE_REMOTE: Lbl_DriveType.Caption:= '网络驱动器';
      DRIVE_CDROM: Lbl_DriveType.Caption:= '光盘驱动器';
      DRIVE_RAMDISK: Lbl_DriveType.Caption:= '内存虚拟盘';
      end; //将该磁盘信息显示在Lbl_DriveType中
      二、 用GlobalMemoryStatus函数获取内存使用信息
      MemStatus: TMEMORYSTATUS; //定义内存结构变量
      Lbl_Memory:Tlabel;
      MemStatus.dwLength := size of(TMEMORYSTATU
    S);
      GlobalMemoryStatus(MemStatus); //返回内存使用信息
       Lbl_Memory.Caption := format('共有内存: %d KB 可用内存: %dKB',[MemStatus.dwAvailPhys div 1024,MemStatus.dwTotalPhys div 1024]);
      //将内存信息显示在Lbl_Memory中
      三、 用GetSystemInfo函数获取CPU信息
      SysInfo: TSYSTEMINFO;
      Lbl_CPUName:Tlabel;
      GetSystemInfo(SysInfo);//获得CPU信息
      case SysInfo.dwProcessorType of
      PROCESSOR_INTEL_386:Lbl_CPUName.Caption:=format('%d%s',[SysInfo.dwNumber Of Processors,'Intel80386']);
      PROCESSOR_INTEL_486:Lbl_CPUName.Caption:=format('%d%s',[SysInfo.dwNumber Of Processors, 'Intel 80486']);
      PROCESSOR_INTEL_PENTIUM:Lbl_CPUName.Caption:=format('%d%s',[SysInfo.dwNum
    berOfProcessors, 'Intel Pentium']);
      PROCESSOR_MIPS_R4000:Lbl_CPUName.Caption:=format('%d%s',[SysInfo.dwNumberOfProcessors, 'MIPS R4000']);
      PROCESSOR_ALPHA_21064:Lbl_CPUName.Caption:=format('%d%s',[SysInfo.dwNumberOfProcessors, 'ALPHA 21064']);
      end;//把CPU信息显示在Lbl_CPUName中(转载)
      

  2.   

    不用写Vxd,在Windows 2000以后的版本中直接可以取得,在以前版本需要Smartvsd.vxd,这个是Windows自带的,不需要你写.我有例子,但非免费,如果做共享软件,用这个来生成序列号是很好的
      

  3.   

    在http://www.applevb.com/上有个dll!!!
      

  4.   

    直接可用
    function GetVolume(sdriv:String):String;
    var fulldrive  :string[3];
        tmp_drive         :array[0..2] of char;
        VolName           :array[0..255] of Char;     // holds the volume name
        dwTemp1,dwTemp2:DWord;
    begin
      fulldrive:=Sdriv+':\';
      strpcopy(tmp_drive,fulldrive);
      GetVolumeInformation(tmp_drive, VolName, 255,nil,dwTemp1,dwTemp2,nil,255);
      Result:=VolName;
    end;function GetDiskVolSerialID(DriveName:string):DWord;   //获得磁盘序列号函数
    var
      dwTemp1,dwTemp2:DWord;
      NResult:PDWord; //保存结果
    begin
      new(NResult);  //分配内存
      GetVolumeInformation(pChar(DriveName+'\'),
        Nil,0,NResult,dwTemp1,dwTemp2,Nil,0);
        Result:=NResult^;    //返回结果
        Dispose(NResult);    //释放内存
    end;
      

  5.   

    不对不对我错了;我提取得的是逻辑盘的序列号;至于出厂序列号用api函数应该可以得;好像有这个函数GetNumbleValue;我记不大清了
      

  6.   

    summe(夏飞扬):有么?没有吧,即使有,Get"Numble"Value是什么意思?
      

  7.   

    请你直接用GetVolumeInformation这个API 就可以了,在delphi 的帮助文件中写的
    很详细了,我就不多说了~_~
      

  8.   

    to debussy(debussy)能不能把你的源码给我一个?????
    mail:[email protected]
      

  9.   

    我有个DLL,只有一个函数getcpuid,要的话发给你
      

  10.   

    win2000后有一API函数,我几不清了,请知道的提供一下