2012-12-15 6 views
5

Ich erstellte eine Verknüpfung (.lnk) -Datei auf dem Desktop mit der IShellLink-Schnittstelle ähnlich dem unten beschriebenen Code this page.Gibt es eine spezielle Methode, um eine Verknüpfung von einem Desktop zu entfernen?

Also meine Annahme war, dass, um diese Verknüpfung zu entfernen, ich einfach DeleteFile auf der LNK-Datei aufrufen könnte, aber offenbar ist es nicht genug ... wenn ich das tue, bekomme ich einen Rest der Verknüpfungsdatei, die wie folgt aussieht:

enter image description here

Aber was interessant ist, ist, dass, wenn ich Dateien im Desktop-Ordner durchsuchen, etwa mit dem Windows-Explorer ist die .lnk-Datei tatsächlich nicht da. Was ich sehe, ist ein Artefakt auf der Desktopoberfläche.

Jede Idee, wie eine Verknüpfung zu entfernen

+7

OK, ich denke, ich habe es verstanden. Ich hätte vor dem Posten mehr Nachforschungen anstellen sollen, tut mir leid, alle. Ich werde es für diejenigen behalten, die auch darauf stoßen. Nach dem Löschen der .lnk-Datei müssen Sie Folgendes aufrufen: 'SHChangeNotify (SHCNE_DELETE, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pDeletedFilePath, NULL);' – c00000fd

+12

Bitte geben Sie Ihren Kommentar als Antwort ein. Gemäß den FAQ ist es nicht nur erlaubt, eigene Fragen zu beantworten, es wird auch empfohlen. :-) –

+0

Um einen Kontext hinzuzufügen: Dies dient nur zur Aktualisierung des Explorers (der auch die Desktop-Icons anzeigt). Bei einigen Windows-Versionen kann dies automatisch oder mit einer kurzen Verzögerung geschehen. Wenn Sie die Datei über die Shell-API ShFileOp löschen (was Overkill ist), ist das explizite Refresh nicht erforderlich. – peterchen

Antwort

2

OK, pro Vorschlag oben, hier ist die API, die später zu aktualisieren, um den Shell aufgerufen werden muss (die Art und Weise Microsoft es getan will?):

SHChangeNotify(SHCNE_DELETE, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pDeletedFilePath, NULL); 
+0

Können wir eine Ordnerverknüpfung auf die gleiche Weise löschen? –

+0

@SaiKrishnaPalagummi: IDK. Es ist eine Weile her, seit ich damit zu tun habe. Sie müssen es selbst ausprobieren und das Ergebnis veröffentlichen. – c00000fd

Verwandte Themen