2010-12-09 9 views
1

Wenn Sie Shift + Delete drücken, wird ein Löschbestätigungsdialog generiert. Ich möchte diesen Dialog nach meinem Bedarf bearbeiten oder seine Botschaft ändern. Kann mir jemand sagen, welche Sache für diesen Dialog verantwortlich ist?Wie kann ich den Löschbestätigungsdialog in Windows überschreiben oder anpassen?

ich entweder müssen den Code kennen, die die Löschbestätigungsdialog durch die Verschiebung erzeugt Griffe + Tastenfolge in Windows XP löschen, oder den Code, mit dem wir diesen Vorgang steuern kann.

+2

Können Sie erklären, warum Sie den Dialog steuern möchten? Möchten Sie Verschiebungslöschvorgänge verhindern? – gideon

+1

Was versuchen Sie zu erreichen, außer mit dem Löschbestätigungsdialog zu quälen? – Thanatos

+0

@giddy: Ich möchte mein eigenes Dialogfeld anzeigen. – Sreekumar

Antwort

3

Ich glaube nicht, was Sie tun wollen, wird Spaß machen.

Im Erraten Sie müssen abfangen die SHFileOperation function (und die IFileOperation Schnittstelle für Vista an)

Hier ist, was mein Google-Fu hat mich auf winapi Interception: http://www.codeproject.com/kb/system/hooksys.aspx

Sie möchten vielleicht um dies zu betrachten: http://easyhook.codeplex.com/

Dieses Projekt unterstützt erweitern (Einhaken) nicht verwalteten Code (APIs) mit rein verwalteten diejenigen, innerhalb einer vollständig verwalteten Umgebung wie C# Windows 2000 SP4 und später ...

Good Luck! =)

0

Eine Möglichkeit, Dateilöschungseinschränkungen zu beheben, könnte die Verwendung von NTFS-Sicherheitsdeskriptoren sein.

Auf diese Weise, können Sie es an einer Stelle ändern und nicht etwa für alle Fälle kümmern müssen um zu verhindern, eine Datei zu löschen.

1

Wenn Sie nur mit dem Dialog (ändern Sie den angezeigten Text, Bild, etc.) stören möchten, können Sie versuchen, die Ressourcen mit einem kostenlosen Tool wie Resource Hacker zu ändern.

Die "Löschen" -Dialogressourcen sind in der Shell32.dll in Windows XP (Sie erwähnten nur diese Version von Windows); Feuer den Resource Hacker und offene shell32.dll, suchen Sie nach dem Warntext „Sind Sie sicher, dass Sie löschen mögen“ und Sie werden feststellen:

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 

Nun, das ist nur der statische Text, sondern der ganze Dialog Definition (Tasten usw.) sollte hier sein. Ich denke, auf diese Weise können Sie es zu einem einfachen Warndialog machen - z. "Du darfst nichts löschen!" und nur eine Schaltfläche "Abbrechen".

+0

Ich habe gerade das Upvoted, weil es technisch eine gültige Lösung (und wahrscheinlich die einfachste bei weitem) ist. Aber der Gedanke macht mich immer noch unbehaglich ... –

+0

Natürlich befürworte ich keine schnellen und schmutzigen Tricks als Teil einer realen Projekt- oder Produktionssoftware. Der Kontext, in dem die Absicht des OP fehlte, schien mir eine einfache Möglichkeit zu sein. –

Verwandte Themen