Windows起動時にアプリを起動させたい場合、スタートアップメニューにアプリを登録することは良くあると思う。
でも、Windows 10や8.1などでは、スタートアップメニューへの登録方法が面倒というか分かりにくく、自作ソフトでもたまに問い合わせが来る。
インストーラでスタートアップに登録すれば確実なんだけど、フリーソフトでインストーラとかは嫌がられる場合も多く、作る手間も掛かる。
そんな訳で、アプリケーション側で、自分自身のショートカットをスタートアップメニューに登録する方法を調べてみた。
まずは、スタートメニューのフォルダを調べる方法。
// 特殊ディレクトリ(スタートアップ)のパスを取得する Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)
Stringの値が返される。
例)C:\Users\<ユーザ名>\AppData\Roaming\Microsoft\Windows\Start Menu
そして、アプリ自身のexeファイル名の取得方法。
Path.GetFileName(Application.ExecutablePath)
Stringの値が返される。
例)sampleApl.EXE
あとは、exeのショートカットをスタートメニューのフォルダにコピーするだけ。
・・・。
あれ、どうやらC#やVB.NETではファイルのショートカットを作る機能が無いっぽい。
そういえば、前も似たようなことをやった記憶が。。
そうだ、これだ。
[C#] 送るメニューにショートカットを登録/解除する方法
この時も、ショートカット作成に苦労した。
なので、ショートカットの作成は、上記記事の「方法4」を流用し、WSH(Windows Script Host)でショートカットを作成する。
いろいろ方法があるので、詳しくは上記記事を参照。
(さらに…)