Eu sei como criar atalhos usando o Windows Script Host ( link ). Mas o que eu preciso é criar atalhos e colocá-los em locais específicos sem precisar usar o mouse manualmente para colocá-los. Isso é possível por meio de scripts (por exemplo, PowerShell etc.)?
A razão é que eu gosto de ter o script de configuração do Windows para que o script de configuração possa estar sob controle de alterações (por exemplo, Git).
Isso é bastante complicado porque trabalhar com exibições do Explorer como a área de trabalho requer o uso de vários objetos COM que não oferecem suporte a scripts, mas isso pode ser feito no PowerShell declarando representações .NET das funções e estruturas nativas em alguns C# incorporados. Com base neste artigo de Raymond Chen , escrevi este script:
Ele usa o componente de script clássico
WScript.Shell
para criar o atalho, se ainda não existir, e usa as APIs COM do shell para localizar e reposicionar o atalho.Por exemplo, se esse script grande foi salvo como
positionedshortcut.ps1
, o comando abaixo criaria um atalho um tanto bobo chamado "Friendly Shell" próximo (1000, 400) que inicia um prompt de comando com uma saudação. Se já existisse um atalho com esse nome, ele seria movido de volta para essa posição, mas não seria alterado.Para definir outras propriedades de atalho, manipule o
$shortcut
objeto normalmente. As coordenadas para o novo$point
estão em pixels; se você precisar se adaptar a diferentes tamanhos de tela, também poderá obter a resolução da tela do script .