0

ファイルに別の名前が付いているか、別のディレクトリから実行されている場合でも、基本的に、現在のプログラムが既に Windows スタートアップ フォルダーにリンクされているかどうかを確認したいと考えています。おそらくプログラムの名前を確認することで、これは可能ですか?

PS: このコードを使用して、プログラムをスタートアップ フォルダーにリンクします。

using (ShellLink shortcut = new ShellLink()) {
    shortcut.Target = Application.ExecutablePath;
    shortcut.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
    shortcut.Description = "My Shorcut Name Here";
    shortcut.DisplayMode = ShellLink.LinkDisplayMode.edmNormal;
    shortcut.Save(Environment.GetFolderPath(Environment.SpecialFolder.Startup));
}

ありがとう。

4

2 に答える 2

0

スタートアップのスタートメニューフォルダをスキャンする必要があり、ショートカットごとにターゲットパスをプログラムのパスと比較します。

WshShell shell = new WshShell(); 
var link = (IWshShortcut)shell.CreateShortcut(linkPathName); //Link the interface to our shortcut
var target = link.TargetPath;
//compare to your program's path...
于 2013-02-06T14:01:01.853 に答える
0

トロイの木馬を作成しようとしていますか? =D

簡単な解決策: Startup フォルダー内のすべてのショートカット (lnk ファイル) を列挙し、それらをすべて 1 つずつ開いて確認します (この手法を使用していると思います)。

于 2013-02-06T14:05:03.443 に答える