我的email为:[email protected],请大家帮忙。

解决方案 »

  1.   

    这里有个Access97的,你试一试
    function GetAccessPassword(FilePath:string):string; 
    const 
    xorString:array[0..12]of byte= 
    ( $86, $FB, $EC, $37, 
    $5D, $44, $9C, $FA, 
    $C6, $5E, $28, $E6,$13 ); 
    var 
    passBuf:array[0..14]of byte; 
    pass:array[0..14]of char; 
    resultPass:string; 
    B:Byte; 
    F:TFileStream; 
    i:integer; 
    begin 
    F:=TFileStream.Create(FilePath,fmShareDenyNone); 
    //office 97 
    try 
    F.Seek($42,soFromBeginning); 
    F.Read(passBuf,14); 
    for I:=0 to 13 do 
    begin 
    B := passBuf[i] xor xorString[i]; 
    pass[i]:=char(B); 
    end; 
    pass[sizeof(pass) - 1] := #0; 
    resultPass:=StrPas(Pass); 
    finally 
    F.Free; 
    end; 
    result:=resultPass; 
    end; 
    ************* 
    [FOR ACCESS97] 
    predef97:array[0..12] of byte= 
    ($86,$fb,$ec,$37, 
    $5d,$44,$9c,$fa, 
    $c6,$5e,$28,$e6,$13); [FOR ACCESS2000] 
    predef2k:array [0..20]of byte= 
    ($d3,$ec,$08,$9c, 
    $93,$28,$46,$8a, 
    $01,$7b,$a0,$df, 
    $22,$13,$9a,$b1, 
    $61,$79,$c7,$7c,$5b);