svnのように、サービスとして実行し、フォルダーの内容に基づいてフォルダーアイコンを変更するプログラムを作成したいと思います。また、名前がexample.someextensionの場合、アイコンとフォルダーの動作を変更したいと思います。
プログラムでこれをどのように達成できますか?また、どの名前空間またはライブラリがそれを実行できますか?
svnのように、サービスとして実行し、フォルダーの内容に基づいてフォルダーアイコンを変更するプログラムを作成したいと思います。また、名前がexample.someextensionの場合、アイコンとフォルダーの動作を変更したいと思います。
プログラムでこれをどのように達成できますか?また、どの名前空間またはライブラリがそれを実行できますか?
ファイルシステムフォルダについて話している場合は、iniファイルを使用してフォルダのアイコンを設定できます。
サービスに、 Desktop.iniという(非表示のシステム)ファイルを、そのフォルダーに表示するアイコンの非表示のコピーとともに、目的のフォルダーに書き込みます。
ファイルには次のようなものが含まれている必要があります。
[.ShellClassInfo]
IconFile=myFolderIcon.ico
IconIndex=0
ConfirmFileOp=0
OriginalIcon=%
Art-Iconsのようなプログラムは、このメカニズムを使用してフォルダーのカスタマイズを可能にします。これに関して私が気付いた唯一の欠点は、新しいアイコンをすぐに使用するためにフォルダが必ずしも更新されないことです。アイコンキャッシュをリセットして強制的に表示する必要がある場合があります。
例:(フォルダには、アイコン「folderA.ico」と「folderB.ico」の非表示のコピーがすでに含まれています):
string[] lines = new string[] { "[.ShellClassInfo]", "IconFile=folderA.ico", "IconIndex=0", "ConfirmFileOp=0", "OriginalIcon=%" };
if(!stimulus)
{
lines[1] = "IconFile=folderB.ico";
}
File.WriteAllLines("Disk:\\MyFolder\\Desktop.ini", lines);