Eu tenho mantido minha área de trabalho totalmente livre de atalhos. Prefiro não ter que tomar medidas para fazê-lo.
Eu tenho mantido minha área de trabalho totalmente livre de atalhos. Prefiro não ter que tomar medidas para fazê-lo.
Respostas:
Eu não acho que você pode desativar todos os programas de criar atalhos, mas eu uso o Fences .
Permite agrupar ícones na área de trabalho, mas o mais importante é que, quando você clica duas vezes na área de trabalho, oculta todos os itens que não estão nas cercas.
Não há nenhuma configuração de substituição que eu saiba que o interrompe, mas você tem três opções - uma perigosa, uma que ignora e outra segura!
Edite as configurações de segurança nas seguintes pastas: (Suba uma pasta, clique com o botão direito do mouse e faça propriedades)
c:\users\<name>\Desktop
or
%userprofile%\Desktop
and
c:\users\default\Desktop
Em seguida, vá para a guia segurança e clique em editar. Você deseja colocar a propriedade Negar em Modificar e Gravar. Você deve fazer isso apenas para seu usuário, se o instalador for executado sob seu usuário.
Isso tem a desvantagem de que você não pode criar ícones, mas deve funcionar.
Basta excluir qualquer ícone gerado por uma instalação!
Clique com o botão direito do mouse em qualquer lugar da área de trabalho onde não haja itens. Expanda a opção de visualização e desmarque "Mostrar ícones da área de trabalho" ... É claro que isso tem o lado negativo de que você não terá nenhum ícone - mas se é isso que você está tentando alcançar, não importa!
Aqui está uma maneira simples de usar as Tarefas agendadas e sem a necessidade de escrever scripts ou programas personalizados.
Configurei uma tarefa agendada para excluir ícones. É um tanto imperfeito, pois é executado periodicamente (e após a instalação completa do MSI), mas funciona (e após 6 meses de uso: funciona muito bem). Ele exclui links diretamente na área de trabalho do perfil do usuário atual e do usuário "Público", embora isso dependa, obviamente, da permissão para fazê-lo.
A tarefa é criada da seguinte maneira:
Application
MsiInstaller
1042
cmd
/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"
Aqui está a tarefa, que você pode salvar como um arquivo .xml e depois importar para o Agendador de tarefas do 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>
Não sei se existe uma maneira de fazer isso no Windows, mas sei que esse código BASIC funcionará:
Kill("C:\Users\<name>\Desktop\*.lnk")
Isso exclui automaticamente todos os atalhos na área de trabalho.
Caso contrário, eu não sei de nenhuma maneira, exceto excluí-los manualmente
(que leva apenas alguns segundos de qualquer maneira)
Se eu realmente não queria fazer isso, eu iria usar o "caminho perigoso" que @William sugere
Sei que essa pergunta tem quase 7 anos, mas desde que surgiu em uma pesquisa na web, pensei em acrescentar a ela.
Se o sistema operacional for um Windows Server, você poderá usar o Gerenciador de Recursos de Servidor de Arquivos para criar triagens de arquivos específicas para locais específicos.
Altere as permissões na pasta da área de trabalho para impedir que qualquer pessoa, incluindo você (e os programas iniciados por você, como instaladores), gravem na área de trabalho. A pergunta mencionou originalmente "totalmente livre" de atalhos, portanto a Lixeira e Meu Computador também devem estar ocultos.