Utworzono plik skrótu (.lnk) na pulpicie przy użyciu interfejsu IShellLink podobnego do kodu opisanego na dole this page.Czy istnieje specjalna metoda usuwania skrótu z pulpitu?
Więc moim założeniem było, że aby usunąć ten skrót, mógłbym po prostu wywołać DeleteFile w pliku .lnk, ale widocznie to nie wystarczy ... jeśli to zrobię, otrzymam resztę pliku skrótu, który wygląda tak:
Ale co ciekawe jest to, że jeśli mogę przeglądać pliki w katalogu pulpitu, powiedzmy z Eksploratorem Windows, plik .lnk nie jest faktycznie istnieje. Widzę pewien artefakt na powierzchni pulpitu GUI.
Każdy pomysł jak usunąć skrót
OK, myślę, że to dostałem. Powinienem zrobić więcej badań przed opublikowaniem, przepraszam wszystkich. Zatrzymam to jednak dla tych, którzy również do niego dołączają. Po usunięciu pliku .lnk należy wywołać następujące komendy: 'SHChangeNotify (SHCNE_DELETE, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pDeletedFilePath, NULL);' – c00000fd
Proszę wstawić komentarz jako odpowiedź. Zgodnie z najczęściej zadawanymi pytaniami udzielanie odpowiedzi na własne pytania jest nie tylko dozwolone, ale również zachęca. :-) –
Aby dodać kontekst: służy jedynie do odświeżenia eksploratora (który wyświetla również ikony pulpitu). Może się to zdarzyć automatycznie lub z niewielkim opóźnieniem w niektórych wersjach okien. Podczas usuwania pliku przez interfejs Shell API ShFileOp (który wydaje się przesadny), jawrerefresh nie jest konieczne. – peterchen