Shell-DDEでショートカットを作成する
TDDEClientConvコンポーネントを使って、プログラムのグループとショートカットを作成する方法です。セットアッププログラムなどを作るときには便利かもしれません。なお、Shell DDEについては Delphi / C++Builderに添付の「Win32API日本語ヘルプ」に詳しく書かれています。
| ■ Shell DDEでショートカットを作成する例 |
procedure TForm1.Button1Click(Sender: TObject);
var
strGroup : string;
strExeName : string;
strExeFile : string;
strMacro : string;
begin
{ 追加するグループとファイル名 }
strGroup := 'My Favorite Tools';
strExeName := 'DropTag';
strExeFile := 'c:\tool\Droptag\Droptag.exe';
{ DDEの準備 -> TDDEClientConv }
if not DDEClientConv1.SetLink('PROGMAN','PROGMAN') then begin
Showmessage('DDE通信に失敗しちゃった。');
exit;
end;
{ グループの作成 }
strMacro := '[CreateGroup(' + strGroup + ')]';
DDEClientConv1.ExecuteMacro(PChar(strMacro),False);
{ グループの表示 }
strMacro := '[ShowGroup(' + strGroup + ',1)]';
DDEClientConv1.ExecuteMacro(PChar(strMacro),False);
{ ファイルの追加 }
strMacro := '[AddItem("' + strExeFile + '","' + strExeName + '")]';
DDEClientConv1.ExecuteMacro(PChar(strMacro),False);
{ DDEの終了 }
if (Assigned(DDEClientConv1)) then begin
DDEClientConv1.CloseLink;
end;
end;
|
グループの追加には CreateGroupコマンドを使います。追加したグループはグループファイルとして保存されます。グループの表示には ShowGroupコマンドを使います。第2引数には表示形式を指定します。Win3.1の頃のインターフェイスなので「グループをアイコン表示でアクティブ化」などは意味が無いと思います。
| 値 | 操作 |
| 1 | 元のサイズで表示・アクティブ化 |
| 2 | アイコン化で表示・アクティブ化 |
| 3 | 最大化で表示・アクティブ化 |
| 4 | 最後の状態で表示 |
| 5 | アクティブにする |
| 6 | アイコン化 |
| 7 | アイコン化 |
| 8 | 現在の状態で表示 |
ショートカットの追加には AddItemコマンドを使います。第1引数に追加するファイルの絶対パス、第2引数にショートカットの名前 (表示する名前) を指定します。この後はアイコンファイルのパスやインデックスを指定します。省略可能です。