Delphi Tips
>> Index
● 02/08 DDeClientConv を使ってスタートメニューにアイコンを登録
● 02/08 スタートメニューを任意の位置にポップアップさせる
最終更新: 9418 日前
0105 D1 D2 D3 D4 D5 D6 D7 3.1 95 98 作成: 1999/02/08 osamu rev 1.1 B1 B3 B4 B5 B6 B7 NT3 NT4 2K XP 更新: 1999/02/08 osamu 編集
DDeClientConv を使ってスタートメニューにアイコンを登録
3.1 のプログラムマネージャのときと同じですね。
DDEClientConv をフォームに置いて以下のようにします。
var strGroup:String;
strExeName:String;
strPrgName:String;
Temp:String;
begin
strGroup := 'グループ名';
strPrgName := 'ソフト名';
strExeName := Application.ExeName;
if not DDEClientConv1.SetLink('PROGMAN','PROGMAN') then begin
ShowMessage('ショートカットの制作に失敗しました。');
end else try
{グループの作成}
Temp := '[CreateGroup(' + strGroup + ')]';
DDEClientConv1.ExecuteMacro(PChar(Temp),False);
{グループの表示}
Temp := '[ShowGroup(' + strGroup + ',1)]';
DDEClientConv1.ExecuteMacro(PChar(Temp),False);
{アイテムの作成}
Temp := '[AddItem("' + strExeName + '","' + strPrgName + '")]';
DDEClientConv1.ExecuteMacro(PChar(Temp),False);
ShowMessage('ショートカットを作成しました。');
finally
DDEClientConv1.CloseLink;
end;
end;
参照: [Delphi-ML:21012] <その他Windows関連> <ShellApi> <Windows> <配布>
0112 D1 D2 D3 D4 D5 D6 D7 3.1 95 98 作成: 1999/02/08 osamu rev 1.1 B1 B3 B4 B5 B6 B7 NT3 NT4 2K XP 更新: 1999/02/08 osamu 編集
スタートメニューを任意の位置にポップアップさせる
スタートメニューのポップアップは、
procedure PopupStartMenu;
var hTaskBar: Integer;
begin
hTaskBar:= FindWindow(PChar('Shell_TrayWnd'), nil);
SetForegroundWindow(hTaskBar);
PostMessage(hTaskBar, WM_USER + $0104, 0, 0);
end;
でOK。
表示されたメニューを MoveWindow で強制的に動かすには、
procedure MoveStartMenu(Point: TPoint);
var hStartMenu: Integer;
OldRect: TRect;
begin
hStartMenu:=FindWindow('#32768',nil);
GetWindowRect(hStartMenu, OldRect);
MoveWindow(hStartMenu,
Point.X, Point.Y,
OldRect.Right-OldRect.Left, OldRect.Bottom-OldRect.Top,
True);
end;
詳しくはスレッドを追って下さい。
参照: [Delphi-ML:21886] <Windows>
[新規作成] [最新の情報に更新]
How To
Lounge
KeyWords
Osamu Takeuchi osamu@big.or.jp
Tips
Delphi
Home