タスクトレイのアイコンをクリックし、webサイトを開かせるには?


ゲン  2009-11-10 00:47:34  No: 36118

前回の質問で、タスクトレイにアイコンを表示させるには?と質問をさせていただき解決することができました。
ありがとうございました。
今回は、その表示させたタスクトレイをクリックすると、webを開くようにしたいのですが、どのようにしたら良いでしょうか。
よろしくお願いします。


凶は憑かれた  2009-11-10 01:12:53  No: 36119

どう解決したか記載不足。

前スレの Ru さん紹介のリンクを使ったのか、コンポーネントを使ったのか?

コンポーネントを使ったのであれば、OnMouseDownイベントあたりがあるだろう。
そうでなければ、サンプルを見たら、クリック(正確にはマウスダウン)がわかる。 

あとは、WebのアドレスがわかっているならShellExecuteでも使えばいいでしょう。


ゲン  2009-11-10 01:51:08  No: 36120

説明不足申し訳ありませんでした。
プログラムはこのようになってます

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private 宣言 }
    NID : TNotifyIconData;
    procedure WMUSER(var Msg : TMsg); message WM_USER + 100;
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with NID do begin
  cbSize           := Sizeof(NID);
  hIcon            := Application.Icon.Handle;
  Wnd              := Form1.Handle;
  szTip            := 'PAPY';
  uCallbackMessage := WM_USER + 100;
  uFlags           := NIF_MESSAGE or NIF_ICON or NIF_TIP;
end;

//アイコンを追加
Shell_NotifyIcon(NIM_ADD, @NID);
end;

procedure TFOrm1.WMUSER(var Msg: TMsg);
begin

//左クリック時
  if (Msg.wParam = WM_LBUTTONDOWN) then
  Label1.Caption :='左クリック' ;

  //右クリック時
  if (Msg.wParam = WM_RBUTTONDOWN) then
  Label1.Caption :='右クリック';

  //左ダブルクリック
  if (Msg.wParam = WM_LBUTTONDBLCLK) then
  Label1.Caption :='左ダブルクリック';

  //右ダブルクリック時
  if (Msg.wParam = WM_RBUTTONDBLCLK) then
  Label1.Caption :='右ダブルクリック' ;

  //中央ボタンをクリック
  if (Msg.wParam = WM_MBUTTONDOWN) then
  Label1.Caption :='中央ボタンをクリック';

  //中央ボタンをクリック
  if (Msg.wParam = WM_MBUTTONDBLCLK) then
  Label1.Caption :='中央ボタンをダブルクリック';

  //マウスが移動
  if (Msg.wParam = WM_MOUSEMOVE ) then
 Label1.Caption :='マウスが通過';

 end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//アイコンを削除
Shell_NotifyIcon(NIM_DELETE, @NID);

end;

end.


igy  2009-11-10 07:16:24  No: 36121

試していませんが、

>//左クリック時

のところで、“凶は憑かれた”さんが

>あとは、WebのアドレスがわかっているならShellExecuteでも使えばいいでしょう。

と書かれているようにすればよさそうですが、いかがですか?


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加