如何获取文档的作者(主要是WORD,EXCEL,PDF等类型),这个问题我已经问了第三遍了,谁都知道调用WINDOWS API来获取,可是该调用哪个谁都不知道。海天子给我一段代码,但前提是文件必须有版本信息才能获取其他信息,所以也不行。给我感觉DELPHI的斑竹比其他版块都多,为什么这个问题谁都不说话呢?

解决方案 »

  1.   

    别抱怨,慢慢来,要不你去问Anders
      

  2.   

    给你个例子
    procedure TAbout_F.FormCreate(Sender: TObject);
    const
      InfoNum = 10;
      InfoStr: array[1..InfoNum] of string = ('CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTradeMarks', 'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments');
    var
      S: string;
      n, Len, i: DWORD;
      Buf: PChar;
      Value: PChar;
     
    begin
      S := Application.ExeName;
      n := GetFileVersionInfoSize(PChar(S), n);
      if n > 0 then
      begin
        Buf := AllocMem(n);
        Memo1.Lines.Add('VersionInfoSize = ' + IntToStr(n));
        GetFileVersionInfo(PChar(S), 0, n, Buf);
        for i := 1 to InfoNum do
          if VerQueryValue(Buf, PChar('StringFileInfo\040904E4\' + InfoStr[i]), Pointer(Value), Len) then
            Memo1.Lines.Add(InfoStr[i] + ' = ' + Value);
        FreeMem(Buf, n);
      end
      else
        Memo1.Lines.Add('No version information found');end;可以从中找到.
      

  3.   

    n := GetFileVersionInfoSize(PChar(S), n);
    这个还是获取文档版本信息啊,里面有公司、语言等信息,没有作者信息。而我们都知道作者是在摘要里的,现在其实关键如何得到摘要信息
      

  4.   

    作者信息一般不会编码,应该还是可以看到,用ultraedit打开
    自己试试比如word 就是在版本信息部分,海天子是不是也是这种方法?
      

  5.   

    海天子也是n := GetFileVersionInfoSize(PChar(S), n);
    可是WORD文档根本不包含版本信息,所以n为0 
    我换了一个setup.exe,里面包含版本信息,就可以成功读取,但也没有作者信息,只是一些公司名、版本号之类的。
      

  6.   

    而pdf文档本身很类似xml,他的作者在Author域中,如:Author (Xilinx)建议你直接做文本分析~
      

  7.   

    可是WINDOWS既然能够显示作者,难道没有提供相应API来访问吗?
      

  8.   

    windows只能显示很有限的文档 office本来就是ms的,explorer当然留有接口,
    pdf就好像不行吧~
      

  9.   

    GetFileVersionInfoSize 其实做的就是文本分析,如果文件格式不是完全符合要求,甚至如果文件有关键的字节错误,那么它也是不能办到的楼主的标题,并不讨人喜欢,这里没有任何人有义务必须帮你,csdn只是一个讨论的环境
      

  10.   

    谢谢 del_c_sharp(昵称被迫改成:我女友在广州当模特)的解释。不过我还是要申明一点,我并不是针对你们斑竹,实在是很少看到你们回答问题;有些低级问题当然无需回答,但遇到疑难杂症,应该是你们发挥威力的时候,可是很多问题总是石沉大海。
    没有人有义务要帮助谁,这是论坛的常规,这我很理解,但只希望高手们能够在这里游逛之余多尽一份力量。不多说了,这是个老话题了,以前在VB和JAVA中也是这样。
      

  11.   

    >>WORD,EXCEL,PDF
    這麼都比較麻煩的, 你要知道文件的格式!!!