今回はShellExecuteではなくShellオブジェクトを使う。
まずはuses節にComObjとVariantsを追加する。
procedure FolderOpen(Path: String);
var
Shell: OleVariant;
begin
Shell:= CreateOleObject('Shell.Application');
Shell.Open(Path);
Shell:= Unassigned;
end;
例として独自の手続きにしてみた。
Pathは開きたいフォルダのフルパス。
処理は大体分かると思うけど、CreateOleObjectでCreateして、
最後にUnassignedを代入して解放する。
その間にあるのが開く処理。
ちなみに特殊フォルダを開く場合は、
あらかじめ定義された定数を指定し、Integer型にキャストすればいい。