Odpowiedzi:
Nie sądzę, że można wyłączyć tworzenie skrótów przez wszystkie programy, ale używam Fences .
Pozwala grupować ikony na pulpicie, ale co najważniejsze, dwukrotne kliknięcie na pulpicie powoduje ukrycie wszystkich elementów, których nie ma w ogrodzeniu.
Wiem, że nie ma żadnego ustawienia nadpisywania, które to powstrzymuje, jednak masz trzy opcje - jedną niebezpieczną, drugą taką, która omija i jedną bezpieczną!
Edytuj ustawienia zabezpieczeń w następujących folderach: (Przejdź jeden folder w górę, kliknij go prawym przyciskiem myszy i wykonaj właściwości)
c:\users\<name>\Desktop
or
%userprofile%\Desktop
and
c:\users\default\Desktop
Następnie przejdź do karty bezpieczeństwa i kliknij edytuj. Chcesz umieścić właściwość Odmowa zarówno w trybie modyfikacji, jak i zapisu. Powinieneś to zrobić tylko dla swojego użytkownika, jeśli instalator działa pod nim.
Ma to tę wadę, że nie można tworzyć ikon, ale powinno działać.
Po prostu usuń dowolną ikonę wygenerowaną przez instalację!
Kliknij prawym przyciskiem myszy w dowolnym miejscu na pulpicie, gdzie nie ma żadnych elementów. Rozwiń opcję widoku i odznacz „Pokaż ikony pulpitu” ... To oczywiście ma tę wadę, że nie będziesz mieć żadnych ikon - ale jeśli to właśnie próbujesz osiągnąć, to nie ma znaczenia!
Oto prosty sposób korzystania z Zaplanowanych zadań i nie trzeba pisać niestandardowych skryptów ani programów.
Ustawiłem zaplanowane zadanie usuwania ikon. Jest nieco niedoskonały, ponieważ działa okresowo (i po zakończeniu instalacji MSI), ale działa (i po użyciu przez 6 miesięcy: działa całkiem dobrze). Usuwa linki bezpośrednio na pulpicie zarówno bieżącego użytkownika, jak i profilu użytkownika „Publicznego”, choć oczywiście zależy to od posiadania na to zgody.
Zadanie jest tworzone w następujący sposób:
Application
MsiInstaller
1042
cmd
/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"
Oto zadanie, które można zapisać jako plik .xml, a następnie zaimportować do Harmonogramu zadań systemu Windows:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2012-11-02T00:46:01.691625</Date>
<Author>Gregmac</Author>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Application"><Select Path="Application">*[System[Provider[@Name='MsiInstaller'] and EventID=1042]]</Select></Query></QueryList></Subscription>
</EventTrigger>
<CalendarTrigger>
<StartBoundary>2012-11-02T05:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>Greg</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>cmd</Command>
<Arguments>/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"</Arguments>
</Exec>
</Actions>
</Task>
Nie wiem, czy można to zrobić w systemie Windows, ale wiem, że ten kod BASIC będzie działał:
Kill("C:\Users\<name>\Desktop\*.lnk")
To automatycznie usuwa wszystkie skróty na pulpicie.
W przeciwnym razie nie znam żadnego sposobu oprócz ręcznego ich usunięcia
(co i tak zajmuje tylko kilka sekund)
Gdybym tak naprawdę nie chciał tego zrobić, użyłbym „Niebezpiecznego sposobu”, który sugeruje @William
Zmień uprawnienia do folderu Desktop, aby uniemożliwić pisanie na pulpicie wszystkim osobom, w tym tobie (i programom przez ciebie uruchomionym, takim jak instalatory). Pytanie pierwotnie wspomniało „całkowicie wolne” od skrótów, dlatego Kosz i Mój komputer powinny być również ukryte.