プログラムでWindows 7のスタートメニューにエントリを追加しますか?


3

すべてのユーザーのWindows 7スタートメニューにプログラムでエントリを追加するにはどうすればよいですか?たとえば、myapp.exeへのショートカットとwww.myapp.comのURLを含むフォルダーMyAppsを追加する場合があります。

理想的には、バッチファイルでこれを実行したいのですが、VBScriptまたはPowerShellも使用してください。


2
これらのフォルダに書き込むには、昇格した権限でプログラムを実行する必要があることに注意してください。
ゾレダチェ

回答:


2

[すべてのプログラム]部分にエントリを追加するには、フォルダー%AllUserProfile%\ Microsoft \ Start Menu \ Programsにショートカットを含めるだけです。

VBScriptでSpecialFolderオブジェクトを使用できます。

Powershellでそれを行う方法はわかりませんが、これは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();

VBへの翻訳は簡単です

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()

1

VBおよびPSには、すべてのユーザーデスクトップ、すべてのユーザースタートメニューなどのシステムフォルダーを対象とする機能があります。

VBscriptではSpecialFoldersを使用し、PowerShellでは環境変数を使用します。

以下は、DeleteFile関数を呼び出し、AllUsersDesktop上のファイルの場所を渡すために使用するコードの一部です。

DeleteFile (objShell.SpecialFolders ("AllUsersDesktop") & "\Microsoft Word 2010.lnk")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.