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

时间:2010-12-09 04:57:47

标签: windows winapi windows-xp

当我们按 Shift + 删除键时,会生成删除确认对话框。我想根据需要处理此对话框或更改其消息。任何人都可以告诉我这个对话有什么责任吗?

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

3 个答案:

答案 0 :(得分:3)

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

我在猜测你必须拦截 SHFileOperation function(以及Vista之后的IFileOperation界面)

这是我的google-fu让我对winapi的拦截: http://www.codeproject.com/kb/system/hooksys.aspx

您可能希望看一下:http://easyhook.codeplex.com/

  

该项目支持扩展   (挂钩)非托管代​​码(API)   纯粹的管理者,来自一个完整的   管理环境如C#using   Windows 2000 SP4及更高版本......

祝你好运! =)

答案 1 :(得分:1)

如果您只想弄乱对话框(更改显示的文本,图像等),您可以尝试使用免费工具(例如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

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

答案 2 :(得分:0)

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

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