【问题标题】:Need some explanations on this Delphi code [closed]需要对此Delphi代码进行一些解释[关闭]
【发布时间】:2011-02-02 14:23:43
【问题描述】:

我有this code,需要对这些问题进行一些解释:

  • 第一次使用部分中“ShellExecHookXample”后面的“_TLB”是什么?

  • 我应该如何在 Delphi 7 中使用此代码并制作独立的 exe 文件? (我不知道放代码和调用它的方法的正确位置是什么。因为它似乎是一个单元还是什么?)

  • 如果可能,请为我描述代码。

提前致谢。

【问题讨论】:

  • 更新问题的代码!你不明白什么?更具体。
  • 如果您甚至不知道将代码放在哪里,那么尝试解释该代码是没有意义的。我建议你买一本介绍 Delphi 基础知识的书,并从一些简单的应用程序开始。然后你可以尝试理解有问题的代码。如果您有具体问题,可以在 SO 上提问。
  • 问题是你不了解 Delphi 并且试图用它做一些非常高级的东西。您应该编写 Hello world 程序,因为您似乎不知道 Unit 是什么。此外,图像不符合“代码”的条件!
  • 您需要将代码添加到问题中。

标签: windows delphi api hook shellexecute


【解决方案1】:

_TLB 代表类型库。看起来您正在尝试实现IShellExecuteHook.Execute,并且到目前为止已经找到了一些代码here。但是,我猜是因为你没有告诉我们。如果您能够花更多的精力描述您想要达到的目标,您可能会得到更好的答案。

如果我的猜测是正确的,你应该看看这个问题:IShellExecuteHook.Execute 我相信它会解释如何解决你的实际问题。

【讨论】:

  • 事实是,我不是 Delphi 程序员,之前有一些使用它制作简单 Windows 应用程序的经验。所以过了一段时间,我需要制作一些应用程序来监控可执行文件并做一些日志。
  • @silvercover ShellExecute 只是启动可执行文件的一种方式。他们也以许多其他方式开始。您不能为此使用第 3 方工具吗?
  • 我找到了这段代码,老实说不知道如何处理 COM 和 Unit 操作,只需要它的输出。你能告诉我用提到的代码一步一步地在Delphi中制作我的最终exe吗?
  • @silvercover 它会在适当的时候恢复活力。 Code Central 服务器似乎已关闭。最令人恼火的是,在尝试阅读我为您提供的链接之前,您问“您能告诉我使用提到的代码一步一步地制作我在 Delphi 中的最终 exe 吗”。这简直是​​粗鲁。在请别人为你工作之前,至少要努力自己理解它!
  • @silvercode 现在我看到我向您提出的 SO 问题是您自己提出的,您没有提及。请停止浪费我们的时间,并以更多的尊重对待他人。
【解决方案2】:

ShellExecHookXample_tlb 表示这个单元是从 com (activex) 对象中导入的,带有一个内部的 delphi 工具(Project->Import type library...) 它读取 com (activex) 对象的公共方法、事件、属性并生成具有适当类/接口的 pas 单元。通常你可以在 delphi 文件夹中找到它。

【讨论】:

  • 我认为情况正好相反。这是您实现的接口,而不是 Windows 实现的接口。
  • 但是这个接口使用了导入的类型库,恕我直言
  • @Yuriy 不是我理解的那样。 Windows 未实现此接口。相反,您实现它并将其注册到 Windows。然后,当 ShellExecute 发生时,Windows 会创建并调用您的 COM 对象。
  • @David 可能是我的英语不好。我不与你争论。我同意你关于这个界面的看法(在显示的代码中)。我的意思是 ShellExecHookXample_tlb 很可能是使用内部 delphi 工具从 com (activex) 对象生成的
  • 你是对的,它可能是。有一点信息可以确保 100%
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 2012-07-08
  • 1970-01-01
相关资源
最近更新 更多