gpt4 book ai didi

Delphi RAR 组件请求存档密码

转载 作者:行者123 更新时间:2023-12-03 18:43:21 25 4
gpt4 key购买 nike

我想要这个 RAR 组件:http://www.philippewechsler.ch/RARComponent.php
通过菲利普韦克斯勒。

但我不明白我如何才能为存档中的文件而不是存档请求密码?

它写在我不明白如何使用的文档中:

OnPasswordRequired(Sender: TObject; const HeaderPassword: Boolean; 
const FileName: WideString;out NewPassword: Ansistring; out Cancel: Boolean);

如果需要密码才能继续,则会发生此事件。
HeaderPassword :如果是这样,则需要密码才能打开存档。
否则需要密码来处理文件。
FileName :需要密码的文件的文件名(存档名
或存档中文件的文件名)
NewPassword : 所需密码
Cancel :如果您不知道正确的密码,请将此设置为 true

如何使用此代码?

最佳答案

OnPasswordRequired(Sender: TObject; const HeaderPassword: Boolean; 
const FileName: WideString;out NewPassword: Ansistring; out Cancel: Boolean);

我不确定这里的问题是什么...这是一个事件处理程序,您可以像分配任何其他事件处理程序一样分配它:双击 OnPasswordRequired对象检查器中的事件,或通过代码连接它:
implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
RARComp.OnPasswordRequired := RARPasswordRequired;
end;

procedure TForm1.RARPasswordRequired(Sender: TObject;
const HeaderPassword: Boolean;
const FileName: WideString;
out NewPassword: Ansistring; out Cancel: Boolean);
begin
if HeaderPassword then // need whole archive password
NewPassword := YourWholeArchivePassword // provide whole archive password
else
// Need individual file password. If you have a separate password for
// each file, provide it as each file is provided in "filename" param.
if FileName = TheFilenameYouHavePasswordFor then
NewPassword := ThisFilesPassword
else
Cancel := True;
end;

我不知道组件名称是什么(我使用了 RARComp ,但我不熟悉这个组件);用正确的替换它。 OnPasswordRequired 肯定有一个预定义的类型。事件(如 TPasswordRequiredEvent 或其他东西);同样,我不熟悉该组件。

解释: out传递给事件处理程序的参数类似于 var参数,除非它们在被组件传递之前不必被初始化。事实上他们是 out表示他们是 输出 ;您应该为它们分配值。两个 const另一方面,参数( HeaderPasswordFileName )不能由您更改;它们是您在决定如何设置允许更改的两个参数时使用的值。 Sender将是 RARComp或者任何你的组件实例被调用;如果需要使用 TRARComponent(Sender) 等语法访问其他信息,可以对其进行类型转换。或 (Sender as TRARComponent) .

同样,我不知道这个组件的正确类名是什么,或者你的实例将被命名为什么。如果组件的类名是 TRARComponent在 IDE 的组件面板上,然后将其放在表单上,​​它将被声明为 RARComponent1: TRARComponent; ,您将使用名称 RARComponent1TRARComponent(Sender)在适当情况下。

关于Delphi RAR 组件请求存档密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com