【问题标题】:Toggle show/hide system files from Delphi从 Delphi 切换显示/隐藏系统文件
【发布时间】:2012-10-17 18:38:51
【问题描述】:

是否有任何内置的 Delphi 功能可以在 Windows 下显示和隐藏系统文件(受保护的操作系统文件)之间切换?或者也许是 HKCU 的注册表项?或者也许一个 API 函数能够做到这一点?

我不需要任何技巧来在我的应用程序中显示/隐藏此类文件,我需要一些可以在 Windows 资源管理器中工作的东西。

操作系统:Win XP SP1+、Vista、7

即使我必须通过 UAC 通知,我也不介意。

【问题讨论】:

  • @RBA,但仅适用于从Windows XPWindows XP with SP2 的Windows,版本范围相当窄。
  • @TLama - 确实如此。对了,操作系统版本是多少?
  • @RBA 如果程序默默地更改设置,它就是恶意软件。
  • @IulianStoian - 这取决于多种因素。您应该通知用户您的应用程序正在执行的所有操作。

标签: delphi file toggle hidden


【解决方案1】:

这是一个严重的黑客攻击,使用它需要您自担风险

用户密钥:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

值名称:ShowSuperHidden

数据类型:REG_DWORD(DWORD 值)

值数据:(1 = 显示隐藏,2 = 不显示)

此注册表值使您可以显示或隐藏系统文件。因此那些具有隐藏属性的文件

【讨论】:

  • 不应通过入侵注册表来修改设置。相反,应该使用官方 API。现在,该官方 API 可能反过来通过注册表实现设置持久性,但这是实现细节。
  • @DavidHeffernan 如果我们都遵守规则,软件永远不会是今天的样子。而且我认为没有任何 API 可以解决这个问题
  • 但是您在回答中没有提到任何这些。您应该清楚地说明这是一个严重的黑客行为,并且违反了所有推荐的最佳实践。那么如果用户仍然想这样做,至少你警告过。
  • @DavidHeffernan 现在好点了吗? ;)
  • 小整改:Key Value Name 是 ShowSuperHidden,不是 Hidden。似乎隐藏值名称用于标记为隐藏属性的文件,而不是系统的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多