1.コントロールパネルの名前とアイコンを含むリストを取得して、[スタート]メニューに表示されるようなメニューを作成するにはどうすればよいですか?
2.エントリをクリックしたときに、対応するコントロールパネルを実行するにはどうすればよいですか?
ちなみに、この種のPopupMenuを実行するために使用されるコントロールは何ですか?ただし、右クリックイベントがあります。
アップデート :
PItemIDListを使用してフォルダーを取得します。
var:
PIDL, TempPIDL: PItemIDList;
Path: array[0..MAX_PATH] of Char;
FI: SHFILEINFOW;
begin
SHGetSpecialFolderLocation(0, CSIDL_FAVORITES, PIDL);
SHGetPathFromIDList(PIDL , Path);
Memo1.Lines.Add(Path);
SHGetFileInfo(LPCTSTR(PIDL), 0, FI, SizeOf(FI), SHGFI_PIDL or SHGFI_DISPLAYNAME or SHGFI_ICON);
Memo1.Lines.Add(FI.szDisplayName);
Image1.Picture.Icon.Handle := FI.hIcon;
正常に表示されますが、CSIDL_FAVORITEをCSIDL_CONTROLSに変更すると、常にエラーが発生します。これは、コントロールパネルのアイテムを取得するための間違った方法ですか?こちらからCPLコピーを使用して別の方法も使用し
ていますが、完全なアイテムを表示することはできません。