用delphi 如何判断机器装的QQ版本! 是装了QQ2009还是QQ2010!我发现只有Exe 的描述中不同!但是不会读取!希望高手帮忙!
发下参考代码!

解决方案 »

  1.   

    QQ2010模块和QQ2009不同,可以读EXE的模块进行确定
      

  2.   

    可以读取exe文件的版本信息来判断
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      VerInfoSize,VerValueSize,Dummy:Dword;
      VerInfo:Pointer;
      VerValue:PVSFixedFileInfo;
      sVer:String;V1,V2,V3,V4:word;
    begin
      VerInfoSize:=GetFileVersionInfoSize(Pchar('D:\Borland\Delphi6\Bin\DCC32.EXE'),Dummy);
      GetMem(VerInfo,VerInfoSize);
      GetFileVersionInfo(PChar('D:\Borland\Delphi6\Bin\DCC32.EXE'),0,VerInfoSize,VerInfo);
      VerQueryValue(VerInfo,'\',Pointer(VerValue),VerValueSize);
      With VerValue^ do
      begin
        V1:=dwFileVersionMS shr 16;
        V2:=dwFileVersionMS and $FFFF;
        V3:=dwFileVersionLS shr 16;
        V4:=dwFileVersionLS and $FFFF;
      end;  
      FreeMem(VerInfo,VerInfoSize);
      sVer:=IntToStr(V1) +   '.'   +   IntToStr(V2)+   IntToStr(V3)+   IntToStr(V4);
      Form1.Caption:=Form1.Caption   +   '   -   Ver:'   +   sVer;
    end;
      

  4.   

    读取计算exe文件的MD5或CRC也是一种方法;还有最简单的读文件夹名字,当然了并不一定能体现出来。