当我们按 Shift + 删除键时,会生成删除确认对话框。我想根据需要处理此对话框或更改其消息。任何人都可以告诉我这个对话有什么责任吗?
我要么知道处理由Windows XP中的 Shift + 删除键序列生成的删除确认对话框的代码,或者我们可以控制的代码这个操作。
答案 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安全描述符。
这样,您可以在一个地方更改它,而不必担心覆盖所有情况以防止删除文件。