如何覆盖或自定义Windows中的删除确认对话框?

当我们按下Shift + Delete键时,会产生一个删除确认对话框。 我想根据需要处理这个对话框或者改变它的信息。 任何人都可以告诉我什么是负责该对话框?

我需要知道处理由Windows XP中的Shift + Delete键序列生成的删除确认对话框的代码,或者我们可以控制这个操作的代码。

我不认为你想做的事情会很有趣。

我猜你必须拦截 SHFileOperation函数 (和Vista的IFileOperation接口)

在这里,我的谷歌让我在winapi拦截: http : //www.codeproject.com/kb/system/hooksys.aspx

你可能想看看这个: http : //easyhook.codeplex.com/

该项目支持使用Windows 2000 SP4以及更高版本的完全托管环境(如C#)来扩展(挂接)非托管代​​码(API)和纯托管代码(API)。

祝你好运! =)

如果您只想混淆对话框(更改显示的文本,图像等),则可以尝试使用免费工具(例如Resource Hacker )修改资源。

“删除”对话框资源位于Windows XP中的shell32.dll中(您只提到该版本的Windows); 启动资源黑客并打开shell32.dll,然后搜索警告文本“你确定要删除”,你会发现:

CONTROL "Are you sure you want to delete '%1'?", 12295, STATIC, SS_LEFT | SS_NOPREFIX | WS_CHILD | WS_VISIBLE | WS_GROUP, 41, 10, 220, 28 

现在,这只是静态文本,但整个对话框定义(按钮等)应该在这里。 我想这样你可以把它做成一个简单的警告对话框 – 例如“你被禁止删除任何东西!” 只有一个“取消”按钮。

解决文件删除限制的一种方法是使用NTFS安全描述符。

  • 安全描述符
  • 安全描述符操作

这样,你可以在一个地方改变它,而不必担心覆盖所有的情况,以防止删除文件。