Programaticamente adicionando entradas ao menu Iniciar do Windows 7?

3

Como adicionar entradas ao menu Iniciar do Windows 7 para todos os usuários programaticamente? Por exemplo, eu poderia querer adicionar a pasta MyApps contendo um atalho para myapp.exe e uma URL para www.myapp.com.

O ideal é que eu gostaria de fazer isso em um arquivo de lote, mas também aceito o VBScript ou o PowerShell.

    
por Mike Croucher 14.02.2012 / 17:49

2 respostas

2

Para adicionar entradas à parte Todos os Programas, simplesmente inclua um atalho sob a pasta% AllUserProfile% \ Microsoft \ Menu Iniciar \ Programas.

Você pode usar o objeto SpecialFolder no VBScript.

Não sei como fazer isso no Powershell, mas é isso em Javascript:

var shell = WScript.CreateObject("WScript.Shell");
var allUserProfilePath = shell.SpecialFolders("CommonPrograms");
var myShortcut = shell.CreateShortcut(allUserProfilePath + "\myShortcut.lnk");
myShortcut.TargetPath = "c:\My Programs Path";
myShortcut.WorkingDirectory = "c:\Blah";
myShortcut.WindowStyle = 4;
myShortcut.Save();

A tradução para o VB é direta

Dim shell 
Set shell = WScript.CreateObject("WScript.Shell")
Dim allUserProfilePath 
Set allUserProfilePath = shell.SpecialFolders("CommonPrograms")
Dim myShortcut 
Set myShortcut = shell.CreateShortcut(allUserProfilePath + "\myShortcut.lnk")
myShortcut.TargetPath = "c:\My Programs Path"
myShortcut.WorkingDirectory = "c:\Blah"
myShortcut.WindowStyle = 4
myShortcut.Save()
    
por 14.02.2012 / 19:25
1

Existem funções em VB e PS para direcionar pastas do sistema, como a área de trabalho Todos os Usuários, o Menu Iniciar Todos os Usuários, etc.

No VBScript, você vai querer usar SpecialFolders e no PowerShell usar .

O seguinte é um recorte de código que eu uso para chamar uma função DeleteFile e passar a localização de um arquivo no AllUsersDesktop:

DeleteFile (objShell.SpecialFolders ("AllUsersDesktop") & "\Microsoft Word 2010.lnk")
    
por 14.02.2012 / 18:18